如何将本地Git分支复制到远程回购

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

  1. 克隆一个远程Git回购
  2. 主分支分支到实验
  3. 编辑/testing/提交代码在实验分支

现在,我还没有准备好将实验合并到master中。 不过我想把它推回到远程回购,因为这是我与几个同事分享的信息库。 我想让他们看看我在实验分支中做了什么。 我通常只是通过SSH访问远程回购。

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

根据git推手册页面 :

git push origin experimental 

find与源代码库中的experimental匹配的引用(很可能会findrefs/heads/experimental ),并在源代码库中更新相同的引用(例如refs/heads/experimental )。
如果experimental不存在,它将被创build

这是一样的:

 git push origin experimental:refs/heads/experimental 

通过复制当前的experimental分支来创build原始资源库中的experimental分支。
只有当本地名称和远程名称不同时才需要在远程存储库中创build新的分支或标签 ; 否则,裁判名称本身将工作。

或者,就像在git提示中提到的那样,您可以设置一个“分支的默认远程”:

您可以使用git config将默认远程分配给给定的分支。 除非另有说明,该默认远程将用于推送该分支。

当你使用git clone时,这已经为你完成了,允许你使用没有任何参数的git push来推送本地master分支来更新origin repository的master分支。

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

可以用来手动指定。


Janbuild议(对于git> = 1.7.0 ) push -u (或push --set-upstream )选项:

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

这样,你不必做任何gitconfiguration。

 git push -u origin experimental 

如果你的分支的名字是experimental ,并且远程的名字是origin ,那就是

 git push origin experimental 

git push -u <remote-name> <branch-name>不起作用,如果新创build的分支不是从同一个回购产生的,也就是说,如果你还没有使用git checkout -b new_branch创build新的分支,那么这是行不通的。

例如,我在本地克隆了两个不同的存储库,并且必须将repo2 / branch1复制到repo1 /,然后再将其推入。

这个链接帮助我推动我的本地分支(从另一个回购克隆)到我的远程回购:

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