为了账号安全,请及时绑定邮箱和手机立即绑定

撤消git pull,如何将repos带到旧状态

撤消git pull,如何将repos带到旧状态

Git
aluckdog 2019-08-05 16:48:59
撤消git pull,如何将repos带到旧状态有没有办法恢复或撤消git pull,以便我的源/ repos将进入git pull之前的旧状态?我想这样做是因为它合并了一些我不想这样做的文件,但只合并了其他剩余的文件。所以,我想要恢复这些文件,这可能吗?谢谢 :)编辑我想撤消git merge以澄清。看到一些答案后,我就这样做了git reflogbb3139b... HEAD@{0}: pull : Fast forward01b34fa... HEAD@{1}: clone: from ...name...现在,我该怎么办?做的git reset --hard 还行吗?我不想再把它搞砸了,所以要求详细的步骤?
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

git pull将做两件事:它做了一个git fetch然后git merge它合并了已经设置为在你的配置中合并的分支。

所以你想要做的是撤消合并(撤消fetch并没有多大意义,也不是必要的)。

要做到这一点,您可以尝试使用git reset --hard重置为以前的状态。使用git-reflog命令查找先前状态的SHA-1,然后重置为该状态。

警告git reset --hard删除所有未提交的更改。


查看完整回答
反对 回复 2019-08-05
?
12345678_0001

TA贡献1802条经验 获得超5个赞

与jkp的答案相同,但这是完整的命令:

git reset --hard a0d3fe6

通过这样做找到a0d3fe6

git reflog

并查看要撤消的点。


查看完整回答
反对 回复 2019-08-05
?
Qyouu

TA贡献1786条经验 获得超11个赞

撤消合并的更现代的方法是:

git merge --abort

而稍微老一点的方式:

git reset --merge

之前答案中描述的老派方式(警告:将丢弃所有本地更改):

git reset --hard

但实际上,值得注意的git merge --abort是,它只相当于给git reset --mergeMERGE_HEAD的存在。这可以在git help for merge命令中读取。

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

合并失败后,如果没有合并,MERGE_HEAD则失败的合并可以撤消,git reset --merge但不一定是撤消git merge --abort因此它们不仅是同一事物的旧语法和新语法。这就是我发现git reset --merge在日常工作中更有用的原因。


查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 757 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信