繁体   English   中英

清除master上git历史的正确方法

[英]Proper way to clean git history on master

我在“主人”分支上。 我有这样的git历史:

333  (#82)
444  (#83)

然后我做了一些提交并还原(222-> 111-> 010-> 789-> 456-> 123):

123 Revert "(#84)"
456 Revert "(#81)"
789 Revert “(#81)"
010 Revert "(#86)"
111  (#86)
222  (#84)
333  (#82)
444  (#83)

我需要某种方式清除那些错误的步骤(222-> 111-> 010-> 789-> 456-> 123),以便将历史记录返回到:

333  (#82)
444  (#83)

如果我这样做可以吗:

git rebase -i 333

并会丢弃错误的提交? 然后

git push -f

假设您尚未推送提交和还原,请执行以下操作:

git reflog  

这将为您提供按时间倒序排列的操作列表(包括所有还原和提交)。 找到最后一个稳定的提交,并以HEAD@{somenumber}的形式找到它的头。 然后回到该提交,请执行以下操作:

git reset --hard HEAD@{somenumber}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM