git - 从现有远程分支创建本地分支

时间:2014-06-19 08:22:21

标签: git git-branch

我想从现有的远程分支创建一个分支(让我们说远程-A),然后将更改提交到repo。

我使用以下命令从现有的遥控器A

创建一个本地分支
$git checkout remote-A

git branch
master
* remote-A

现在我使用以下命令从远程A创建了local-B

git branch local-B
git checkout local-B

如何确保我在local-B上的更改位于remote-A之上,以便当我将local-B推送到远程repo时,更改位于remote-A之上?

5 个答案:

答案 0 :(得分:8)

旧帖子,我仍然想添加我的内容。

1. git remote add <remote_name> <repo_url>
2. git fetch <remote_name>
3. git checkout -b <new_branch_name> <remote_name>/<remote_branch_name>

这一系列命令将

  1. 创建一个新的遥控器,
  2. 将其提取到您的本地,以便您的本地git知道其分支和所有
  3. 从远程分支创建一个新分支并结帐。
  4. 现在,如果您要将此新本地分支发布到您的远程并设置上游URL

    git push origin +<new_branch_name>

    此外,如果只需要进行远程更改,那么您可以完成,而不是第3步,

    git pull --rebase <remote_name> <remote_branch_name>
    

    然后选择了 如果发生任何冲突,请git mergetool(需要单独配置),并遵循git中的控制台指令。

答案 1 :(得分:7)

你想在远程A的基础上创建分支,对它进行更改,然后将它们推到远程A上?

git checkout -b remote-A
git pull origin remote-A
git checkout -b remote-B

在remote-B上进行更改

 git commit -a -m 'describe changes on remote-B branch'

 git checkout remote-A  
 git merge remote-B  
 git push origin remote-A

答案 2 :(得分:6)

这应该有效:

git checkout --track origin/<REMOTE_BRANCH_NAE>

答案 3 :(得分:0)

我想从远程git分支使用不同的名称创建一个新的本地跟踪分支。

所以我用了这个命令:

git checkout -b <new_branch_name> --track <remote_name>/<remote_branch_name>

示例:

git checkout -b local-A --track origin/remote-A

我在上述答案的多条评论中都看到了它,但一见钟情是很好的。

跟踪分支是与远程分支有直接关系的本地分支。如果您在跟踪分支上并键入git pull,则Git会自动知道要从哪个服务器获取以及要合并到哪个分支。

答案 4 :(得分:-4)

要确保您的更改位于顶部,您不能从远程拉出。你必须获取并重新加入。 il将是这样的:

fetch->stash->rebase->stash pop->commit->push