【发布时间】:2012-02-01 12:04:30
【问题描述】:
我有一个 master 分支和一个 feature 分支。功能分支有一些变化,但主分支有很多变化,比如从存储库中删除 10 个项目。问题是如何将 feature 分支合并回 master 分支?
1) 将特征与主合并,然后将主与特征合并
或
2) 直接将master与feature合并
【问题讨论】:
标签: git merge branch branching-and-merging
我有一个 master 分支和一个 feature 分支。功能分支有一些变化,但主分支有很多变化,比如从存储库中删除 10 个项目。问题是如何将 feature 分支合并回 master 分支?
1) 将特征与主合并,然后将主与特征合并
或
2) 直接将master与feature合并
【问题讨论】:
标签: git merge branch branching-and-merging
checkout master
checkout -b develop (assuming you don't already have a develop branch)
merge --no-ff your-feature-branch
解决代码中的任何冲突。 测试,测试测试。
checkout master
merge --no-ff develop
然后部署您的代码。
我really like this branching model 因为它总是让我在功能分支上构建功能,在开发时进行最终测试。并且只会合并到主人中。 master 上没有提交。
【讨论】:
不要进行反向合并。在集成分支上集成。在发布候选分支上测试已完成的分支。仅在发布候选版本时合并到 master。您合并已部署的候选版本。
这里有更多信息:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
更新
我在这里重写了这个:
【讨论】:
对于master,两者的状态相同。只是feature 分支在第一种情况下被带到与master 相同的状态,而在第二种情况下保持不受影响。
如果您要问做哪一个,那么做第一个是首选方式。您应该先将 master “合并”功能,以便合并后的任何错误都不会影响 master。保持master 干净。这也确保了主服务器中永远没有merge conflicts。
这是我的一般做法:将 master 合并到任何功能分支并检查一切是否正常。如果有东西坏了,修理它。然后再次合并最新的master。只有在合并的分支看起来不错后,才会将其放入 master 中。
【讨论】:
我会在 master 之上 rebase 功能,然后在 master 之上快速前进功能
(带有功能签出)
git rebase master
【讨论】: