如何将本地Git分支复制到远程回购
到目前为止,我已经采取了以下步骤:
- 克隆一个远程Git回购
- 主分支分支到实验
- 编辑/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 。 它会帮助你回答你所有的问题。