如何将本地Git分支复制到远程仓库

时间:2009-04-30 03:13:21

标签: git version-control distributed

到目前为止,我已采取以下步骤:

  1. 克隆远程Git仓库
  2. 将主分支分支到实验
  3. 在实验分支中编辑/测试/提交的代码
  4. 现在,我还没准备好将实验合并到主人。但是我想将它推回到远程仓库,因为那是我与几位同事共享的存储库。我想让他们看看我在实验部门做了些什么。我通常只是通过SSH访问远程仓库。

    如何在不影响远程仓库主分支的情况下在远程仓库上共享本地分支?

5 个答案:

答案 0 :(得分:156)

根据git push manual page

 git push origin experimental

在源存储库中找到与experimental匹配的引用(很可能会找到refs/heads/experimental),并使用它更新源存储库中的相同引用(例如refs/heads/experimental)。
如果experimental远程不存在,则会创建

这与:

相同
git push origin experimental:refs/heads/experimental

通过复制当前experimental分支在原始存储库中创建分支experimental 只有当本地名称和远程名称不同时,才需要在远程存储库中创建新分支或标记;否则,引用名称本身就可以使用。

或者,如git tip中所述,您可以设置“分支的默认远程”:

  

您可以使用git config为给定分支分配默认远程。除非另有说明,否则此默认遥控器将用于推送该分支。

     

使用git clone时已经为您完成了这项工作,允许您使用git push而不使用任何参数来推送本地主分支来更新源存储库的主分支。

git config branch.<name>.remote <remote> 
     

可用于手动指定。


Jan建议(git >= 1.7.0push -u(或push --set-upstream)选项:

  

对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数git-pull(1)和其他命令使用。

这样,您就不必进行任何git配置。

git push -u origin experimental

答案 1 :(得分:15)

如果分支的名称为experimental,并且远程的名称为origin,那么

git push origin experimental

答案 2 :(得分:1)

如果新创建的分支不是从同一个repo中生成的话,

git push -u <remote-name> <branch-name>不起作用,即如果你没有使用git checkout -b new_branch创建新分支,那么这将不起作用。< / p>

例如,我在本地克隆了两个不同的存储库,我不得不将repo2 / branch1复制到repo1 /然后推送它。

This链接帮助我将我的本地分支(从另一个仓库克隆)推送到我的远程仓库:

答案 3 :(得分:0)

这是github远程管理http://github.com/guides/push-a-branch-to-github的权威github页面。它将帮助您回答所有问题。

答案 4 :(得分:0)

TL;博士

$ git push --set-upstream origin your_new_branch

更多信息

在您提交的内容很少之后:

$ git checkout -b your_new_branch
$ git add file
$ git commit -m "changed file"

您将指定上游的分支推送到其中一个远程存储库中,如下所示:

$ git push --set-upstream REMOTE YOUR_BRANCH

遥控器可以通过

看到
$ git remote -v

通常,您将拥有单个默认远程origin。所以你的命令看起来像:

$ git push --set-upstream origin your_new_branch

并且可以使用git push进行所有后续推送。