我从master创建了一个本地分支(B1),并进行了必要的更改以使项目在我的本地计算机上运行,然后提交。然后我开始研究一个新问题,所以我从B1检出了一个新分支(B2),到目前为止已经在那里做了两次提交。
o -- o B2
/
o B1
/
-- o -- o -- o -- o master
现在我想推送我的代码修复结果,以便我的老板和其他同事可以查看它们,但我不想向他们发送我做的第一个更改,因为他们不需要修复,他们的本地设置不同。我最初的想法是将B2重新绑定到master上,跳过B1中的单独提交:
git rebase -p --onto master <SHA-of-B1-commit> B2
但是这会让我得到一个B2的版本,根本不包括B1上的更改,这意味着该项目将无法在我的本地计算机上正常工作。
有没有办法推动B2的变化,同时仍然在本地保留B1和B2?
答案 0 :(得分:0)
你能成为第三个分支吗?
git checkout -b B3 B2
git cherry-pick <required commit1> <required commit2> ...
git push <remote> B3:B2