当前位置: 首页 > 工具软件 > git playback > 使用案例 >

git reset操作:回滚pull和merge

公良向阳
2023-12-01
回滚merge和pull操作 
引用
$ git pull                                                 (1) 
Auto-merging nitfol 
CONFLICT (content): Merge conflict in nitfol 
Automatic merge failed; fix conflicts and then commit the result. 
git reset --hard                                 (2) 
$ git pull . topic/branch                   (3) 
Updating from 41223... to 13134... 
Fast-forward 
$ git reset --hard ORIG_HEAD             (4)

(1) 从origin拉下来一些更新,但是产生了很多冲突,你暂时没有这么多时间去解决这些冲突,因此你决定稍候有空的时候再重新pull。 
(2) 由于pull操作产生了冲突,因此所有pull下来的改变尚未提交,仍然再stage area中, 这种情况下 git reset --hard 与  git reset --hard HEAD 意思相同,即都是清除index和working tree中被搞乱的东西。  
(3) 将topic/branch合并到当前的br anch,这次没有产生冲突,并且合并后的更改自动提交。 

(4) 但是此时你又发现将topic/branch合并过来为时尚早,因此决定退滚merge,执行git reset --hard ORIG_HEAD回滚刚才的pull/merge操作。说明:前面讲过,执行git reset时,git会把reset之前的HEAD放入.git/ORIG_HEAD文件中,命令行中使用ORIG_HEAD引用这个commit。同样的,执行pull和merge操作时,git都会把执行操作前的HEAD放入ORIG_HEAD中,以防回滚操作。 

引用地址

 类似资料: