1

我有一个托管在 Bitbucket 上的 Git 存储库。如果我有 3 个分支说master,branch_2branch_3. 我已将分支拉到master我已对其进行更改、提交和推送的本地机器上。现在为了让事情保持最新,我想推动那个提交branch_2branch_3我该怎么做?我没有在本地设立这些分支机构。

我试图git pull origin branch_2在本地设置那个分支,但我现在得到了

Auto-merging .gitignore CONFLICT (add/add): .gitignore 中的合并冲突自动合并失败;修复冲突,然后提交结果。

4

1 回答 1

2

要签出另一个分支,您必须执行以下操作:

git checkout --track origin/branch_2

这将创建一个名为 的新本地分支branch_2,该分支设置为跟踪上的等效远程分支origin

然后git pull获取该分支上的更改,以防您尚未拉取。

接下来,您不能推送提交,只能推送头部。您要做的是在分支之间复制提交。有一个简单的命令可以做到这一点:

git cherry-pick master

master这会将分支中的最新提交复制到当前提交中。如果你想要一个特定的提交而不是分支头,你可以指定它的 SHA:

git cherry-pick 3f8917a

我建议使用该-x参数,它会添加一条注释,表明这是一个复制的提交,以及它是从哪里复制的:

git cherry-pick -x master

之后,只是git push

于 2013-06-17T11:08:17.587 回答