例如,我有一个由6个提交(从最早到最新)的仓库,1EE21B
,4E5963
,46EFEE
,966437
,410673
, 134023
。如何删除从4E5963
到966437
的提交,以使410673
紧跟在1EE21B
之后? (1EE21B
<-410673
<-134023
)
答案 0 :(得分:3)
您可以使用git rebase将提交压缩为一个。因此,您必须这样做:
git rebase -i HEAD~5
然后您将在vim编辑器中看到以下内容:
pick 1EE21B a commit message
pick 4E5963 a commit message
pick 966437 a commit message
pick 410673 a commit message
pick 134023 a commit message
您可以将提交标记为已压缩,这会将它们融合到先前的提交中。要将提交压缩为第一个,您需要将其更改为:
pick 1EE21B a commit message
squash 4E5963 a commit message
squash 966437 a commit message
pick 410673 a commit message
pick 134023 a commit message
在vim编辑器中保存后,您将需要提交和git push -f
。这是有关操作方法的完整tutorial。
编辑:请确保在强行推动之前检查git日志,以达到所需的效果。