如何将本地主服务器合并到所有本地分支机构?

时间:2013-02-19 06:09:12

标签: git

我有几个本地分支,过了一段时间,我将所有这些分支合并为master,然后我想将本地master合并到所有本地分支。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

git中没有一个命令,但是在“bash会话”中,“为所有分支”执行某些操作的方式是:

for BRANCH in `ls .git/refs/heads`; do something $BRANCH; done

可以用于合并:

for BRANCH in `ls .git/refs/heads`; do if [[ "$BRANCH" != "master" ]] ; then git checkout $BRANCH ; git merge master ; fi ; done

或按照Williamanswer中的建议重置分支:

for BRANCH in `ls .git/refs/heads`; do if [[ "$BRANCH" != "master" ]] ; then git checkout $BRANCH ; git reset --hard master ; fi ; done

答案 1 :(得分:0)

您可以删除本地分支并重新创建它们。有了这个,新的分支将成为主分支的镜像。您可以使用git checkout branch-name && git reset --hard master获得相同的结果。

请记住,这可以删除一些提交。如果您不想要(可能因为这些本地分支机构有远程分支机构),您需要执行git mergegit checkout branch-name && git merge master

答案 2 :(得分:0)

我从这里开始使用VonC的答案,但是由于某种原因ls .git/refs/heads停止生成所有分支名称-该文件夹中只有两个。因此,此修改后的版本对我有用:

for BRANCH in `git branch`; do if [[ "$BRANCH" != "master" ]] ; then git checkout $BRANCH ; git merge master --no-edit; fi ; done