合并多个其他分支来构建Git分支的实用工具。
项目描述
通过合并多个其他分支来构建Git分支的实用工具。
免费软件:BSD许可证
有关为项目做出贡献的指南,请阅读CONTRIBUTING文档。
文档
在某些情况下,可能需要完全控制要部署的代码。这可以通过创建一个YAML配置文件来描述应该包含在您的分支中的内容来实现。
文件的格式如下
trunk: master
name: autostaging # name of the branch to build
branches: # list of branches to merge into final branch
- feature1
- feature2
- forkowner:feature3 # branch from fork of repository
submodules:
submodules/module1:
branches:
- feature1
- forkowner:feature2 # branch from fork of repository
submodules/module2:
trunk: develop
branches:
- feature2
为了增加对这个文件的安全性,您应该使用safe-commit-files实用工具
safe-commit-files --push /path/to/branch_config.yml
构建分支
此配置文件可用于构建部署分支
git checkout master
git-build-branch path/to/branch_config.yml
冲突解决
首先,确定冲突所在的位置。
a). 分支 foo 与 master 冲突
git checkout -b foo origin/foo
git pull origin master
# try to resolve conflict
git push origin foo
b). 分支 foo 与分支 bar 冲突
您不能简单地将foo合并到bar或反之亦然,否则foo的PR将包含来自bar的提交。相反,创建一个第三方的冲突解决分支
git checkout -b foo+bar --no-track origin/foo
git pull origin bar
# try to resolve conflict
git push origin foo+bar
现在将分支 foo+bar 添加到 branch_config.yml,并将分支foo和bar移动到其下方。
稍后分支B合并到master中,并从branch_config.yml中删除。
可能移除它的人也注意到了A+B,并执行以下操作。否则,任何看到A+B但未看到两个分支的人都可以随意假设需要执行以下操作。
将A+B合并到A中。由于B现在已不存在,您希望将解决方法合并到A中,否则A将与master冲突。
从
branch_config.yml
中删除A+B。由于它现在是A的子集,因此不再需要。
如果您不确定如何解决冲突,请通知分支所有者。