在清理(即大部分压缩)某些更大功能的历史时,我经常遇到以下情况:
Commit A:
- change A.1
- change A.2
- change A.3
// EDIT: maybe some more commits
Commit B:
- change B.1
- change B.2
- change B.3
假设现在我想使用交互式rebase移动change B.1
来提交A.到目前为止我找到的唯一方法就是:
rebase -i
reset HEAD^
然后add -p
)rebase -i
这需要两个rebase并且非常麻烦。另外,我必须在拆分时重写提交B的提交消息。
有没有更好/更有效的方法来实现这一目标?
答案 0 :(得分:2)
可能不是一个重大改进,但
git rebase -i A^
git cherry-pick --no-commit B
git add -p
git commit --amend
git reset --hard
git rebase --continue
将是另一种选择。