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

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

  1. 克隆了一个远程 Git 回购
  2. 将主分支扩展到一个实验
  3. 实验分支中编辑/测试/提交的代码

现在,我还没准备好把实验室合并到 Master。然而,我确实想把它推回到远程回购,因为那是我与几个同事共享的存储库。我想让他们看看我在实验部门的成果。我通常只是通过 SSH 访问远程回购。

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

81176 次浏览

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

如果您的分支的名称是 experimental,而远程控制器的名称是 origin,那么它是

git push origin experimental

根据 Git 推送手册页:

 git push origin experimental

在源存储库中找到一个匹配 experimental的参考文献(很可能会找到 refs/heads/experimental) ,并用它更新原始存储库中的相同参考文献(例如 refs/heads/experimental)。
如果 experimental不远程存在,则将创建

这与:

git push origin experimental:refs/heads/experimental

通过复制当前的 experimental分支,在原始存储库中创建分支 experimental
这个表单是 只需在本地名称和远程名称不同时在远程存储库中创建新的分支或标记; 否则,ref 名称本身就可以工作。

或者,像在 给你个建议中提到的那样,您可以设置一个“ Branch’s Default Remote”:

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

当您使用 git 克隆时,这已经为您完成了,允许您在没有任何参数的情况下使用 git push 来推动本地主分支更新原始存储库的主分支。

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

可用于手动指定此。


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

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

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

git push -u origin experimental

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

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

这个 链接帮助我将本地分支(从另一个 repo 克隆而来)推送到远程 repo:

博士

$ 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来完成。