git从特定分支拉到特定分支

时间:2012-11-19 12:03:57

标签: git

我们正在使用github repo作为我们的“中央存储库”。

我们计划让多个程序员以下列方式处理登台服务器:

  1. 编码人员在本地仓库的单独分支上工作;
  2. 编码器将更改推送到github;然后
  3. 编码器将更新从github提取到服务器仓库
  4. 因此,在实践中,在步骤3中,编码人员将在分段回购中运行以下内容:

    git checkout coderA-updates
    git pull origin coderA-updates
    git checkout master

    有没有办法更新特定分支而不必先git checkout呢?


    TLDR: 如何在不必切换活动分支的情况下执行git pull origin remoteBranch localBranch之类的操作?

    谢谢:)

3 个答案:

答案 0 :(得分:1)

git checkout branchB
git pull origin branchA

这会在branchA中发生更改并将其合并到本地branchB

git help merge说:

  

合并来自命名提交的更改(从他们的时间开始)   历史与当前分支不同)进入当前分支。

所以,我相信如果没有让其中一个分支最新,就不可能使用2个分支。

您可以在当前有效分支中使用git stash保存更改,然后结帐branchB并拉branchA。合并完成后,您将检出存储更改的分支,并使用git stash apply

或者您可以在结帐/拉取之前提交更改。

我希望这会有所帮助。

答案 1 :(得分:1)

使用普通fetch

git fetch origin remoteBranch:localBranch

默认情况下,这仅适用于快进更改(请参阅docs)。

答案 2 :(得分:0)

来自git help pull

  

<强>概要

   git pull [options] [<repository> [<refspec>...]]
     

<强>描述

     

[...]

     

可以命名任意远程引用(例如,名称   标签)甚至是具有相应远程跟踪的refs集合   分支(例如,refs / heads / :refs / remotes / origin / ),但通常是   远程存储库中分支的名称。

所以,你可以做git pull remoteBranch:localBranch并且它会起作用。