在主机中获取从主机到分支的更改

在我的仓库中,我有一个叫做aq的分支,我正在处理这个分支。

然后,我承担了新的工作和master错误。

将这些提交到aq分支的最好方法是什么? 创build另一个新的分支出master ,并与aq合并?

查看aq分支,并从master分配。

 git checkout aq git rebase master 

你应该可以在你的aq分支上只是把git merge origin/master

 git checkout aq git merge origin/master 

首先检查一下,掌握:

 git checkout master 

做所有的更改,修补程序和提交,并推动你的主人。

回到你的分支,'aq',并合并master:

 git checkout aq git merge master 

您的分支将与主人保持同步。 合并的一个好的和基本的例子是3.2 Git分支 – 基本分支和合并

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

 git checkout eq git cherry-pick commit1 git cherry-pick commit2 git cherry-pick commit3 ... 

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

但是从现在开始,将bug修复保存在一个单独的分支中。 你将能够

 git merge hotfixes 

当你想把他们推到常规的开发分支。

要么cherry-pick相关的提交到分支机构,要么将分支机构合并到分支机构。

对我来说,我已经有了一些变化,我想要从基地分支的最新。 我无法进行重新分配,而cherry-pick会永远占用,所以我做了以下工作:

 git fetch origin <base branch name> git merge FETCH_HEAD 

所以在这种情况下:

 git fetch origin master git merge FETCH_HEAD 

你有几个选项。 git rebase master aq到将保留提交名称的分支上,但是如果这是一个远程分支,不要重新启动。 如果你不关心保存提交名称,你可以git merge master aq 。 如果你想保留提交名称,它是一个远程分支git cherry-pick <commit hash>提交到你的分支。

无论是rebase还是merge是对的,但是如果你在你的分支aq中有多个提交,rebase或者merge会包含其他人在你发送pull请求的时候发生的变化,或者如果把提交压缩成一个commit,那么我认为我有一种方式(不是最好的方式,但非常安全和清晰)

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