我有四个分支(master, b1, b2和b3)。我在b1-b3上工作后,我意识到我在分支主上有一些应该在所有其他分支中更改的东西。我改变了我在master中需要的东西…这是我的问题:
我如何用主分支代码更新所有其他分支?
我有四个分支(master, b1, b2和b3)。我在b1-b3上工作后,我意识到我在分支主上有一些应该在所有其他分支中更改的东西。我改变了我在master中需要的东西…这是我的问题:
我如何用主分支代码更新所有其他分支?
当前回答
有两种方法
您希望将主分支合并到您的分支中 - git checkout master - git拉 - git checkout your-feature-branch - git merge master //解决冲突并提交 - git push
2:如果你想在main的基础上重新调整你的改变。
git checkout master #Switch to main branch
git pull #Take latest
git checkout your-feature-branch #Switch to story branch
git pull --ff-only # Ensure branch is up to date
git rebase -i origin master #Interactively rebase your commits on top of master. So your changes are on top of latest commits in main.
git rebase --continue #Resolve conflicts and rebase --continue to continue with next commits
git push -f origin your-feature-branch # As you have rewritten the commit history, you have to **force push** the commits
其他回答
你有两个选择:
第一个是合并,但是这为合并创建了一个额外的提交。
检查每个分支:
git checkout b1
然后合并:
git merge origin/master
然后推:
git push origin b1
或者,你可以做一个rebase:
git fetch
git rebase origin/master
Git rebase master是正确的方法。合并意味着将为合并创建一个提交,而重基则不会。
对于这个问题有两种选择。
1) Git 变基
2)去合并
只有与上述两者不同的合并情况下,将有额外的历史提交
1) git结帐分支(b1,b2,b3)
2) git rebase origin/master(如果冲突可以通过git rebase -continue在本地解决)
3)去推
或者,git合并选项是类似的方式
1) git checkout“your_branch”(b1,b2,b3)
2)转到合并母版
3)去推
对于每个发现这个线程的人来说,寻找一个易于使用和一致的解决方案来合并您当前的分支与master上的最新更改:
你可以把它添加到你的shell配置中:
alias merge='currentBranch=$(git rev-parse --abbrev-ref HEAD) && git checkout master && git pull && git checkout $currentBranch && git merge master'
这个别名使用5个命令:
currentBranch=$(git rev-parse --abbrev-ref HEAD) # gets your current branch(needed for point 4)
git checkout master # checks out master
git pull # gets latest changes from master
git checkout $currentBranch # checks out the in point 1 saved branch
git merge master # merges your current branch with master
在添加别名之后,您可以简单地使用“merge”命令来“更新”当前正在处理的分支。
有两种方法
您希望将主分支合并到您的分支中 - git checkout master - git拉 - git checkout your-feature-branch - git merge master //解决冲突并提交 - git push
2:如果你想在main的基础上重新调整你的改变。
git checkout master #Switch to main branch
git pull #Take latest
git checkout your-feature-branch #Switch to story branch
git pull --ff-only # Ensure branch is up to date
git rebase -i origin master #Interactively rebase your commits on top of master. So your changes are on top of latest commits in main.
git rebase --continue #Resolve conflicts and rebase --continue to continue with next commits
git push -f origin your-feature-branch # As you have rewritten the commit history, you have to **force push** the commits