猿问

如何“取消还原”已还原的Git提交?

给定已使用进行更改,commit然后使用还原的更改,revert撤消该还原的最佳方法是什么?

理想情况下,应该使用新的提交完成此操作,以免重写历史记录。


墨色风雨
浏览 1081回答 3
3回答

潇潇雨雨

如果您尚未推动更改, git reset --hard HEAD^否则,还原还原就可以了。另一种方法是git checkout HEAD^^ -- .,然后git add -A && git commit。

繁星coding

git cherry-pick <original commit sha>将复制原始提交,实质上重新应用提交还原还原将执行相同的操作,并带有更复杂的提交消息:git revert <commit sha of the revert>这两种方式都将允许您git push不覆盖历史记录,因为它会在还原后创建一个新的提交。输入commit sha时,通常只需要前5个或6个字符:git cherry-pick 6bfabc

HUWWW

还原提交就像git中的任何其他提交一样。意思是,您可以还原它,如下所示:git revert 648d7d808bc1bca6dbf72d93bf3da7c65a9bd746显然,只有在推送更改后才有意义,尤其是当您无法强制将其推送到目标分支时(这对于您的master分支是个好主意)。如果尚未推送更改,请按照其他帖子的说明进行选择,还原或仅删除还原提交。在我们的团队中,我们有一条规则,即对主分支中提交的“还原”提交使用“ 还原 ”,主要是为了保持历史记录的清洁,以便您可以看到哪个提交还原了什么内容:&nbsp; &nbsp; &nbsp; 7963f4b2a9d&nbsp; &nbsp;Revert "Revert "OD-9033 parallel reporting configuration"&nbsp; &nbsp; &nbsp; "This reverts commit a0e5e86d3b66cf206ae98a9c989f649eeba7965f.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; &nbsp;a0e5e86d3b6&nbsp; &nbsp; Revert "OD-9055 paralel reporting configuration"&nbsp; &nbsp; &nbsp;This reverts commit 648d7d808bc1bca6dbf72d93bf3da7c65a9bd746.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; &nbsp;Merge pull request parallel_reporting_dbs to master* commit&nbsp;&nbsp; &nbsp; '648d7d808bc1bca6dbf72d93bf3da7c65a9bd746'这样,您可以追溯历史并弄清楚整个故事,即使那些不了解遗产的人也可以自己解决。而如果您随意挑选或重新编排内容,则这些有价值的信息将会丢失(除非您将其包括在注释中)。显然,如果一次提交的还原和重新还原不止一次,则将变得非常混乱。
随时随地看视频慕课网APP
我要回答