3 回答
TA贡献1833条经验 获得超4个赞
如果您尚未推动更改, git reset --hard HEAD^
否则,还原还原就可以了。
另一种方法是git checkout HEAD^^ -- .,然后git add -A && git commit。
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
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'
这样,您可以追溯历史并弄清楚整个故事,即使那些不了解遗产的人也可以自己解决。而如果您随意挑选或重新编排内容,则这些有价值的信息将会丢失(除非您将其包括在注释中)。
显然,如果一次提交的还原和重新还原不止一次,则将变得非常混乱。
- 3 回答
- 0 关注
- 1056 浏览
添加回答
举报