【发布时间】:2010-12-26 02:06:49
【问题描述】:
我不清楚git revert 的工作原理。例如,我想恢复到一个提交,头部后面有六个提交,恢复中间提交中的所有更改。
说它的SHA 哈希是56e05fced214c44a37759efa2dfc25a65d8ae98d。那我为什么不能这样做:
git revert 56e05fced214c44a37759efa2dfc25a65d8ae98d
【问题讨论】:
-
尽管这个问题实际上比它现在标记为重复的那个问题更老,但这个问题有更好的答案。 meta.stackexchange.com/questions/147643/…
-
这个问题和这里的最佳答案可能会让 git 用户感到困惑。只是为了帮助理解术语,您不要恢复到提交。您可以重置为一个提交(就像使用时间机器回到过去)或revert一个提交(就像拉出一个提交,就好像它从未存在过一样- 但是它确实保留了历史记录中的还原信息,允许您在需要时还原还原)另请注意,如果您在此过程中遇到冲突,则不应使用 m 标志并键入提交消息。回顾历史时,git 提供的自动消息会提供更多信息。
-
这是非常好的反馈。谢谢@alexrogins
-
@alexrogins 拉出一个提交,好像它从未存在过是什么意思?也不确定“revert a revert”指的是什么——尽管欣赏评论,很好的信息,只是在你的观点上寻找更多细节。
-
@Joe 如果您添加一行代码然后提交该行,如果您要还原它,您将撤消该行代码(无论它在历史上首次写入的位置,都不会必须是最后一次提交)。然后进行还原提交。如果您还原该还原提交,那么您实际上是在撤消撤消(即再次重做原始行)
标签: git