我正在使用我的git存储库,并在之前的master分支上进行了大量的提交。现在我意识到它有点太吵了,并且想将所有这些合并到一个提交中。
102381 commit z
....
176232 commit a
891273 initial commit
简单地
198273 initial commit (after rebase)
891273 initial commit
我环顾四周,许多解决方案似乎都在挤压。不幸的是,鉴于一切都在主分支上,这可能是可能的。
我最初的想法之一是
我不确定这是否是一个很好的方法;认为获得一些想法,指导和讨论会更明智。
答案 0 :(得分:4)
您可以简单地对891273
进行软重置,然后进行提交。
这会将分支重置为第一次提交,保持暂存区域中的更改重置,您可以在下一步中提交。
git reset --soft 891273
git commit -m 'Second Commit'
这样,您的存储库中将有两个提交。
答案 1 :(得分:1)
找到一种简单的方法来实现您的要求:
git checkout –b branch1
。从commit#891273,
git rebase –i master
等待编辑器输入(键入i
以开始输入):
pick 176232 commit a
squash ****** commit b
......
squash 102381 commit z
注意:输入“Esc”按钮停止输入
:wq
退出编辑器,然后你会找到你想要的东西注意:当压缩提交到z时,它可能会发生冲突。你需要修复冲突的文件,并使用git add filename,git rebase --continue继续压缩
参考: https://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit