如果我在Git中创建分支,是否可以将父分支合并回我的工作分支,以便收集其他人已签入的更改?
假设我从master
和feature
分支开始。
如果我签出了feature
并且我创建了一个新分支:
feature> git checkout -b moreFeatureWork
然后,如果我提交所有更改并将我的工作合并到功能中:
moreFeatureWork> git commit -a -m "Commit my changes"
feature> git merge --no-ff moreFeatureWork
然后,让我说下周我需要在那个分支上做更多的一周。我让它坐了一个星期,与此同时,很多其他人已将他们的工作合并到feature
。
可以这样做,用最新的更改更新我的分支吗?
moreFeatureWork> git merge feature
或者,这会有问题吗?
答案 0 :(得分:2)
对于正在开发长期运行功能的开发人员而言,这是一种相对常见的做法,但需要与来自上游的更改保持一致。
如果你这样做的话,不应该有任何问题(除非你和其他人在同一个地方工作,否则会发生两次合并冲突)。
如果您想保持历史记录清洁,您应该选择rebase
代替您的分支:
git rebase <feature>
您可能会遇到合并冲突,但它们与您合并两个分支的情况没有什么不同。
答案 1 :(得分:0)
据我了解,您没有修改moreFeatureWork
分支?您只想在开始工作之前获得“最新”?
如果一切顺利且人们只在feature
分支上添加了内容,那么您建议的合并应该只执行快进并保持moreFeatureWork
最新。
然而,我个人更喜欢moreFeatureWork> git rebase feature
这样,当您对moreFeatureWork
分支进行一些更改时,甚至可以更新它。
注意:假设您的moreFeatureWork
分支之前已完全合并到feature
,您当然可以删除该分支并创建新分支。
feature> git branch -d moreFeatureWork
feature> git checkout -b moreFeatureWork2
分支或类似的东西。