首先检查下面的图像,我试着代表我需要的东西
绿色正方形是提交,黄色,棕色和红色是这些提交的一部分(在我的情况下,提交通过提交传播的3个文件)。
dev
没有进一步的更改实际发生的事情:我正在开发一个分支,发现某些更改实际上对dev
分支很有用,并且实际上与dev2
分支无关。所以我想在dev
分支上进行那些更改。
git checkout
git merge
我实际上希望修改离开dev2
分支并进入dev
分支,所以如果我执行结帐>提交修改将在两个分支上,这就是为什么我不会我喜欢这样做。
这甚至可能吗?我该怎么办?
答案 0 :(得分:1)
您可以使用sha
找到应该在dev(红色方块)中的最后一次提交的git log
,然后转到您的主分支checkout master
然后说git merge SHA
其中红色的SHA为SHA。这在git中很常见。它通过forked repos发生了很多,以便合并原始的更新。
请记住,这会获得整个提交,但我不确定这是否是您想要的。如果你只想要那些提交中的一些文件,那将会困难得多。然后你应该看看this question。
答案 1 :(得分:1)
是的,这是可能的。你需要做三件事:
git checkout dev
git cherry-pick yellow
,git cherry-pick brown
,git cherry-pick red
dev2
重新投放到dev
:git checkout dev2
,git rebase --onto dev