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 时,分支不会中断。
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 时,分支不会中断。