2

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

我怎样才能做到这一点?

4

3 回答 3

2

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

或重置分支,如威廉回答中所建议:

for BRANCH in `ls .git/refs/heads`; do if [[ "$BRANCH" != "master" ]] ; then git checkout $BRANCH ; git reset --hard master ; fi ; done
于 2013-02-19T07:40:16.107 回答
0

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

请记住,这可以删除一些提交。如果您不希望这样(可能是因为这些本地分支有一个远程分支),您将需要执行git merge: git checkout branch-name && git merge master

于 2013-02-19T06:11:22.380 回答
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
于 2020-08-24T13:40:55.883 回答