关于版本控制:在Git中从master获取更改到分支

Get changes from master into branch in Git

在我的存储库中,有一个名为aq的分支,我正在研究它。

然后,我在master中提交了新的工作和bug。

将这些承诺提交到aq分支机构的最佳方法是什么?从master中创建另一个新分支,并将其与aq合并?


查看aq分支,并从master重新平衡。

1
2
git checkout aq
git rebase master


当你在你的AQ分支机构工作时,你应该只需要1〔6〕。

1
2
git checkout aq
git merge origin/master


先退房给主人:

1
git checkout master

做所有的改变,修补和承诺,并推动你的主人。

返回到您的分支"aq",并将master合并到其中:

1
2
git checkout aq
git merge master

您的分支机构将与master保持最新。合并的一个好的基本示例是3.2 Git分支-基本分支和合并。


不能保证主错误修复不在其他提交中,因此不能简单地合并。做

1
2
3
4
5
git checkout aq
git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit3
...

假设这些提交表示错误修复。

不过,从现在开始,将错误修复保存在单独的分支中。你就可以

1
git merge hotfixes

当您想将它们全部转入常规的dev分支时。


无论是cherry-pick相关承诺进入aq分公司,还是将master分公司并入aq分公司。


aq合并

1
2
3
4
5
git checkout master
git pull
git checkout aq
git merge --no-ff master
git push


简单的方法

1
2
3
# 1. Create a new remote branch A base on last master
# 2. Checkout A
# 3. Merge aq to A


对我来说,我已经有了一些改变,我想从基础分支机构得到最新的改变。我做不到rebasecherry-pick要花很长时间,所以我做了以下的事情:

1
2
git fetch origin <base branch name>  
git merge FETCH_HEAD

所以在这种情况下:

1
2
git fetch origin master  
git merge FETCH_HEAD

你有几个选择。git rebase master aq到将保留提交名称的分支上,但如果这是一个远程分支,则不重新设置。如果您不关心保存提交名称,可以使用cx1〔10〕。如果您想要保留提交名称,并且它是一个远程分支git cherry-pick ,那么提交到您的分支。