从历史记录中删除单个提交[重复]
Posted
技术标签:
【中文标题】从历史记录中删除单个提交[重复]【英文标题】:Remove a single commit from history [duplicate] 【发布时间】:2014-06-24 21:10:13 【问题描述】:在我的历史中,我有 1 个提交似乎由于某种原因被重复(检查了差异并且完全相等)。
$ git log pretty=oneline
...
...
d21971dd55e4b4f62421b6531b3fd1e65102974d Add Source Sans Pro required weights
...
...
8aaba297017086094b60087b5601ccc01d50be54 Add Source Sans Pro required weights
...
...
此更改位于尚未推送的分支中。我怎样才能摆脱那些重复的提交之一?
编辑: 提交日志之间的点并不意味着它们之间恰好有两个提交。在某些情况下超过 10 个。
【问题讨论】:
【参考方案1】:要摆脱提交 d21971
你可以这样做
git rebase -i d21971^
它将打开您的文本编辑器,其中包含提交列表到提交d21971
的父级。只需删除提交d21971
的行,保存并退出。它会删除它。
为确保即使出错也不会丢失任何提交,您可以先标记当前分支。例如:
git tag safetyTag
git rebase -i d21971^
#Decide that you don't like what you just did
git checkout safetyTag
git branch -f master
【讨论】:
但请注意,这是重写历史,任何从之前克隆您的存储库的人都将被晾干。另请注意,丢失的提交可能意味着后续提交中的级联冲突。以上是关于从历史记录中删除单个提交[重复]的主要内容,如果未能解决你的问题,请参考以下文章