在主机中获取从主机到分支的更改
在我的仓库中,我有一个叫做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