【发布时间】:2015-07-29 14:54:46
【问题描述】:
当我有一个本地提交(即我还没有推送到远程存储库的提交)我想要恢复时,如果我执行以下命令会发生什么?
git revert HEAD
我研究了很多,发现-
- “git revert $id”用于恢复在特定提交提交 ID - $id 中所做的更改,并且
- HEAD 本身只不过是对提交 ID 的引用(属于 最新提交)。
但我无法理解在这种情况下(当我有本地提交时),HEAD 会指向我最近的本地提交,还是远程存储库上的最新提交?
我为什么要问这个?
- 我尝试从我的分支“git pull”,但它不会像我一样发生 我本地的一些变化。
- 所以,我执行了“git commit”,然后尝试了“git pull”。
- 现在,“git pull”给了我错误(可能是合并冲突:我 碰巧错过了“错误”的细节),所以我 决定恢复我的提交,为此我执行了“git revert 头”。
- 现在我很困惑,这个命令 (git revert HEAD) 只恢复我在 我之前提到的(本地)提交?或远程上的最后一次提交 存储库?
【问题讨论】:
-
HEAD表示当前签出的提交(所以它肯定是本地提交,它可能也是远程提交)。git revert <commit>将创建一个“镜像提交”,并切换每个添加和删除的行。由于您尝试拉取并遇到合并冲突,因此您可能正在合并中,需要先解决/中止它。
标签: git git-revert