我们使用git和GitFlow作为版本控制工具,我遇到的问题是我确信有些人已经遇到过.
在一个功能分支中,一位同事做了一个提交,其中插入了许多无用的文件(所有二进制文件和IDE元数据文件).这个提交被推了.现在这位同事提交了一个pull请求,我不想将所有这些无用的文件集成到develop.
现在,我的git存储库非常庞大,git克隆成为一个漫长而枯燥的过程......
第一个(也是简单的)解决方案是从功能分支中删除这些文件,并在没有这些文件的情况下提交(或执行a revert commit).但是,如果我这样做,我的git存储库将保持相当大,因为对象(文件)将不会从历史记录中删除(因为git仍然知道它们!).
我想要的是"取消"这个提交.
下图显示了我的问题(最顶层的提交是最早的):
如何删除此提交并使我的git克隆再次快速?
PS:感谢GitGraphJS绘制git图形的有用工具!
dan*_*ter 11
有几种方法可以删除或撤消提交.在这种情况下,您可以使用git revert或git rebase或git reset.
一个信息,git rebase与使用git revert相比,不添加一个额外的提交.git revert在合并期间添加了一个额外的提交.如果你不熟悉使用git rebase,我建议你使用git revert.
还原
git revert <commit-ID>
之后,您提交更改并将该提交推送到您的源.
重启
您可以删除上次推送的提交,在执行此操作后,您必须推送您的分支.您可以决定将功能分支合并或重新绑定到开发分支.
git reset –-hard HEAD~1
要么
git reset HEAD^ --hard
变基
这个命令将导致编辑器的交互部分,从那里你可以选择
 git rebase -i HEAD~
在交互式部分中,它列出了所有提交.删除你要删除的那个.完成rebase并将力推到repo.
git rebase --continue 然后推你的分支.
| 归档时间: | 
 | 
| 查看次数: | 8118 次 | 
| 最近记录: |