我有一个开源项目的github存储库 - this。由于各种原因,rebase和cherry-picking以不太谨慎的方式应用于存储库。由于承诺的信息不是公开的,因此也编辑了历史。跨越多个提交的某些操作似乎独立地应用于两个克隆,然后将两个克隆合并为一个克隆,从而导致更多重复。
简而言之:严重缺乏适当的git卫生,现在的历史非常混乱和多余。见下面的图片。
我想从存储库中删除整个重复的分支。
问题:
git rebase -i
情况的一些可视化:
答案 0 :(得分:0)
使用“git replace
”替换提交的一种方法是让历史看起来更好而不重写它。所以你运行:
git replace --edit {commit}
用于将“复制”分支合并到编辑器窗口的提交,并删除除第一个之外的所有“父”行。然后你不会在git客户端看到分支,尽管它仍然存在。您可以使用命令推送和获取替换,以使整个团队可以看到它们:
git push origin 'refs/replace/*:refs/replace/*'
git fetch origin 'refs/replace/*:refs/replace/*'