git rebase -i 来自另一个分支的顶部;挤压变得简单

git rebase -i from top of another branch; squashing made simple

git rebase -i 可能会很痛苦。

以前我可以

git rebase -i HEAD~2
git rebase -i COMMITHASH
git rebase -i --root # never do this one it breaks stuff.

好吧,他们都有可能破坏东西。

因为例如,假设 HEAD~20 大于您在分支上所做的更改。那么 rebase 每次都会写一个新的提交。所以当你去合并分支时会说,

"hey these commits do not match",不好,想做很多改变

为了解决这个问题,您要非常注意 git log;git log --patch;

人们应该使用 rebase 的主要目的是压缩提交并修复他们的分支以与 dev 分支或 master 分支对齐。

回答下面的问题。 因为我今天弄明白了并且成功了!

如果说您的目标是压缩提交,您真正想做的是:

git rebase -i dev

这会发现当前分支中与 dev 不同的提交更改,您可以将它们更改为 "s" 以压缩提交。

挤压变得简单。

这样可以保证你的rebase不会造成麻烦;在此示例开发分支中,您可以根据需要多次 git rebase -i dev 并且它永远不会破坏分支。最后,当你在压缩完成后将它合并到 dev 时,分支不会中断。