Git:同时承诺多个分支

Kit*_* Ho 31 git branch

我想在同一时间在不同的分支上进行一次提交,因为在我的项目中,我为不同的客户端设置了不同的分支.

说,我在分支A上做了一个新的功能提交.我是否也可以同时在分支B,分支C和D上进行此提交?这有什么捷径命令吗?检查一个分支是非常麻烦的,并且每次都会提交提交,如果在许多分支上需要提交,那对我来说将是一场噩梦.

这个操作有什么简单的bash脚本吗?

那里有一个类似的问题.但是变基不是我想要的.

小智 51

樱桃挑选功能将完成工作,并将仅应用最后一次提交:

考虑分支A,B

git checkout A
git commit -m "Fixed the bug x"
git checkout B
git cherry-pick A
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Kit*_* Ho 17

由于我的问题没有典型的答案,我编写了一个简单的脚本来自动执行此过程.随意评论此代码.

#!/bin/bash
BRANCHES=(
master_branch
develop_branch
testing_branch
)
ORIGINALBRANCH=`git status | head -n1 | cut -c13-`
git commit -m $1
CHERRYCOMMIT=`git log -n1 | head -n1 | cut -c8-`
for BRANCH in "${BRANCHES[@]}";
do
    git stash;
    git checkout $BRANCH;
    git cherry-pick $CHERRYCOMMIT;
    git checkout $ORIGINALBRANCH;
    git stash pop;
done
Run Code Online (Sandbox Code Playgroud)

  • 你为什么不接受你的答案作为解决方案呢? (3认同)

Phi*_*ley 10

你可能想要的东西看看:git stash你的变化,git commit,git checkout另一个分支,git stash apply,git commit,等.

请参见手册页.

  • 这个方案可行,但你想要`git stash apply`,而不是`git stash pop`. (2认同)

har*_*ald 3

不,我不认为你能做到这一点。您最好的选择是提交到您的一个分支(或主分支),然后将提交一一合并到其他分支中,或者将提交挑选到每个其他分支中。