git本地文件回滚操作

今天有几个文件改在了其他分支上。需要回滚。

 

参考了下面两篇文章:

Link    Link

 

简单讲,分多个不同的阶段:

1. 用git status命令看,发现是unstaged,那么就是只在working tree里面。

这时候,git checkout <文件名>,就可以了。

当然,我试了几次没成功,看起来是需要对branch指定清楚版本才行,未解。

后来是进行了下面的 git reset . 之后,继续使用

git  reset 5c5feea2d8854b3b7d7be3c03764d154429b872a OnetimeRefund.php

才可以的。

 

2. 已经git add到stage里面的文件,需要先使用如下命令:

git reset . 

然后已经staged的文件会恢复为未stage。

 

3. 本地repository的回滚:

git reset --hard HEAD~3 (回滚3个版本,但是如果已经提交到远程,那么push会报错)

 

4. 远程repository的回滚:

git revert 51fa57da7c5352ddb(后面这个是git log里面能够查到的)

 

另外,关于git merge 是否加 --no-ff 的选项,通过git log 加上图形选项,这个就有直观的理解了:

以下是不加--no-ff的git log图形化内容(icode的merge也是默认不加--no-ff的):

git log --graph --pretty=oneline --abbrev-commit

复制代码
*   3361e4e Merge branch 'onetime_refund_update' into master
|\  
| * a36e7e5 Update OnetimeRefund.php for new Refund interface
| *   81149df Merge branch 'trade' into develop
| |\  
* | \   442087b Merge branch 'random_code_new' into master
|\ \ \  
| * | | c6664bd modify expire time from 7 to 35 days
| * | | d52c212 modify expire time from 7 to 34 days
| * | |   3399d42 Merge remote-tracking branch 'remotes/origin/master' into random_code_new
| |\ \ \  
| |/ / /  
|/| | |   
复制代码

 

而普通的git log大概看不出来:

复制代码
commit 3361e4ec3dc9d7b4fb2faf6bdcdcc6975bb88d0e
Merge: 442087b a36e7e5
Author: xxx
Date:   Wed Dec 14 15:20:06 2016 +0800

    Merge branch 'onetime_refund_update' into master

commit a36e7e5cc51b3c5405a486afd35df26a01dd9dd4
Author: xxx
Date:   Wed Dec 14 14:56:20 2016 +0800

    Update OnetimeRefund.php for new Refund interface
    
    Change-Id: Ide737112a7c5ceb9077aa34406b453ed2ea2a109

commit 442087bed0c62f3e5f738b906f7764143cf49fee
Merge: 379ce39 c6664bd
......
复制代码

 

 

 



posted @   blcblc  阅读(4654)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示