【发布时间】:2017-12-16 06:23:54
【问题描述】:
我在这里遇到的情况是,另一个协作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,并希望恢复其他合作者完成的这 2 次提交。在我的终端上,我尝试了以下操作。
git log -2 它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 次提交并将 HEAD 更改为前 2 次提交。
【问题讨论】:
标签: git git-revert
我在这里遇到的情况是,另一个协作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,并希望恢复其他合作者完成的这 2 次提交。在我的终端上,我尝试了以下操作。
git log -2 它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 次提交并将 HEAD 更改为前 2 次提交。
【问题讨论】:
标签: git git-revert
使用git revert:
git revert A^..B
其中A 是要恢复的两个提交中的第一个的哈希,B 是第二个提交的哈希。即使在进行了两次提交后,在远程分支上进行了其他提交,这种方法也将起作用。
如果此分支未与您也可以使用的任何人共享
git reset --hard HEAD~2
但请注意不要在公共共享分支上使用 git reset --hard。对于共享分支,如上所述使用git revert 会更安全。
【讨论】:
A 和B 替换为第一次和第二次提交的提交哈希。
A 是较旧的提交,B 是较新的提交,对吧?只要确保我收到订单 =)
试试这个,但要确定你想做什么
git reset --hard HEAD~2
git reset --hard 是不可逆转的变化。也可能是了解git reset --hard/--soft/ --mixed的好时机
我还建议通过this
【讨论】:
只需将其重置为 2 次提交之前的提交哈希:
git reset <commit-hash>
这将删除commit-hash 之后的提交并将更改带到您的工作区。如果您不希望进行更改,可以传递 --hard 选项。
【讨论】: