128

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

  1. 克隆了一个远程 Git 存储库
  2. 将主分支分支到实验
  3. 在实验分支中编辑/测试/提交的代码

现在,我还没准备好将实验性合并到大师级。但是,我确实想将它推回远程仓库,因为那是我与几个同事共享的仓库。我想让他们看看我在实验分支中做了什么。我通常只是通过 SSH 访问远程仓库。

如何在远程 repo 上共享我的本地分支,而不影响远程 repo 的 master 分支?

4

5 回答 5

157

根据git push 手册页

 git push origin experimental

在源存储库中找到匹配的 ref experimental(很可能会找到refs/heads/experimental),并用它更新原始存储库中的相同 ref(例如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(or push --set-upstream) 选项:

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

这样,您不必执行任何 git config。

git push -u origin experimental
于 2009-04-30T04:13:03.320 回答
15

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

git push origin experimental
于 2009-04-30T03:21:41.773 回答
1

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

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

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

于 2014-02-24T22:12:23.167 回答
0

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

于 2009-04-30T03:20:28.470 回答
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.

于 2018-06-19T09:08:15.187 回答