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

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

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


当前回答

与aq合并

git checkout master
git pull
git checkout aq
git merge --no-ff master
git push

其他回答

第一次退房要掌握:

git checkout master

做所有的更改,热修复和提交,并推动你的master。

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

git checkout aq
git merge master

你的分支将是最新的。一个很好的和基本的合并例子是3.2 Git分支-基本分支和合并。

检查aq分支,并从主基地。

git checkout aq
git rebase master

您也可以通过运行一行来实现这一点。 Git合并aq master

这相当于

git checkout aq
git merge master

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

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

假设这些提交代表bug修复。

但是从现在开始,将错误修复放在一个单独的分支中。你就可以

git merge hotfixes

当你想要将它们全部滚动到常规开发分支时。

场景:

我从master创建了一个分支,比如branch-1,并将其拉到我的本地。 我的朋友从master创建了一个分支,比如branch-2。 他向master提交了一些代码更改。 现在我想把这些更改从主分支转移到本地分支。

解决方案

git stash // to save all existing changes in local branch
git checkout master // Switch to master branch from branch-1
git pull // take changes from the master
git checkout branch-1 // switchback to your own branch
git rebase master // merge all the changes and move you git head  forward
git stash apply // reapply all you saved changes 

执行“git stash apply”后,您可以在文件中发现冲突。您需要手动修复它,现在您已经准备好执行了。