我是GIT的新手,我很好奇适当的工作流程(这只是我的第二个SCM,我的第一个是Clearcase)。我们假设有2个GIT分支:Master
& Foobar
。
John编辑了一个文件hello.txt
,其中的更改只能位于Foobar
分支上。 John检查Foobar
分支,进行更改并提交。
Jane现在需要对hello.txt
进行更改,这需要Master
& Foobar
个分支机构。她检查Foobar
分支,进行更改并提交。然后她检出Master
分支并从Foobar
分支中提取文件。但是,她现在不恰当地将John的更改合并到Master
。
如何避免这种情况?在Clearcase世界中,John有责任创建合并箭头以确保他的更改不会合并到Master
。 GIT中有类似的东西吗?或者有更好的工作流程吗?
答案 0 :(得分:2)
如果您在分支机构A上并且想要在分支B上提交更改,那么您想要的是樱桃选择那些更改。见Google: git cherry pick
如果你git pull B
,你刚刚将B合并为A;这是你想要避免的。但幸运的是,撤消合并比执行合并更容易。如果它没有被推到任何地方,你所要做的就是在合并之前将A的头重置为提交。
答案 1 :(得分:1)
git中没有合并箭头这样的东西。
听起来Foobar就是一个不应该掌握变化的分支。如果是这样的话,Jane就应该开始在master中工作并将其合并到Foobar中。