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

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

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

Git
墨色风雨 2019-10-05 11:37:22
给定已使用进行更改,commit然后使用还原的更改,revert撤消该还原的最佳方法是什么?理想情况下,应该使用新的提交完成此操作,以免重写历史记录。
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

如果您尚未推动更改, git reset --hard HEAD^


否则,还原还原就可以了。


另一种方法是git checkout HEAD^^ -- .,然后git add -A && git commit。


查看完整回答
反对 回复 2019-10-05
?
繁星coding

TA贡献1797条经验 获得超4个赞

git cherry-pick <original commit sha>

将复制原始提交,实质上重新应用提交


还原还原将执行相同的操作,并带有更复杂的提交消息:

git revert <commit sha of the revert>


这两种方式都将允许您git push不覆盖历史记录,因为它会在还原后创建一个新的提交。

输入commit sha时,通常只需要前5个或6个字符:

git cherry-pick 6bfabc


查看完整回答
反对 回复 2019-10-05
?
HUWWW

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

还原提交就像git中的任何其他提交一样。意思是,您可以还原它,如下所示:


git revert 648d7d808bc1bca6dbf72d93bf3da7c65a9bd746

显然,只有在推送更改后才有意义,尤其是当您无法强制将其推送到目标分支时(这对于您的master分支是个好主意)。如果尚未推送更改,请按照其他帖子的说明进行选择,还原或仅删除还原提交。


在我们的团队中,我们有一条规则,即对主分支中提交的“还原”提交使用“ 还原 ”,主要是为了保持历史记录的清洁,以便您可以看到哪个提交还原了什么内容:


      7963f4b2a9d   Revert "Revert "OD-9033 parallel reporting configuration"

      "This reverts commit a0e5e86d3b66cf206ae98a9c989f649eeba7965f.

                    ...

     a0e5e86d3b6    Revert "OD-9055 paralel reporting configuration"

     This reverts commit 648d7d808bc1bca6dbf72d93bf3da7c65a9bd746.

                ...

     Merge pull request parallel_reporting_dbs to master* commit 

    '648d7d808bc1bca6dbf72d93bf3da7c65a9bd746'

这样,您可以追溯历史并弄清楚整个故事,即使那些不了解遗产的人也可以自己解决。而如果您随意挑选或重新编排内容,则这些有价值的信息将会丢失(除非您将其包括在注释中)。


显然,如果一次提交的还原和重新还原不止一次,则将变得非常混乱。


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

添加回答

举报

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