我有一个需要调试的bug master
分支。为此,我想插入一堆调试程序(例如,打印变量),指出错误并应用修复程序。稍后,我想将修复程序合并到master
分支中,但我不想跳过调试更改。
# create debug branch
git checkout -b debug
# ...
# edit sources and add debug prints
# ...
# commit debug changes
git commit --all
# create branch for the fix
git checkout -b fix
现在进行正确的修复和提交
git commit --all
转到master
分支......
git checkout master
...并在没有调试更改
的情况下与修复合并git merge fix # <-- wrong, will merge debug changes as well
如何在没有fix
的情况下合并debug
?
答案 0 :(得分:8)
您正在寻找的是'git rebase'的'to'选项(请参阅'git help rebase')。根据你所描述的那样:
git rebase --onto master debug fix
这实际上是在master处重新生成(从'fix'到'debug')提交。你仍然有修复分支。要完成返工,请跟进:
git checkout master
git merge fix