到目前为止,我已经采取了以下步骤:
- 克隆了一个远程 Git 存储库
- 将主分支分支到实验
- 在实验分支中编辑/测试/提交的代码
现在,我还没准备好将实验性合并到大师级。但是,我确实想将它推回远程仓库,因为那是我与几个同事共享的仓库。我想让他们看看我在实验分支中做了什么。我通常只是通过 SSH 访问远程仓库。
如何在远程 repo 上共享我的本地分支,而不影响远程 repo 的 master 分支?
到目前为止,我已经采取了以下步骤:
现在,我还没准备好将实验性合并到大师级。但是,我确实想将它推回远程仓库,因为那是我与几个同事共享的仓库。我想让他们看看我在实验分支中做了什么。我通常只是通过 SSH 访问远程仓库。
如何在远程 repo 上共享我的本地分支,而不影响远程 repo 的 master 分支?
根据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.0)push -u
(or push --set-upstream
) 选项:
对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数 git-pull(1) 和其他命令使用。
这样,您不必执行任何 git config。
git push -u origin experimental
如果您的分支的名称是experimental
,而远程的名称是origin
,那么它是
git push origin experimental
git push -u <remote-name> <branch-name>
如果新创建的分支不是从同一个 repo 生成的,则不起作用,即如果您没有使用 创建新分支git checkout -b new_branch
,那么这将不起作用。
例如,我在本地克隆了两个不同的存储库,我必须将 repo2/branch1 复制到 repo1/,然后再推送它。
此链接帮助我将本地分支(从另一个仓库克隆)推送到远程仓库:
这里是github远程管理的权威github页面http://github.com/guides/push-a-branch-to-github。它将帮助您回答所有问题。
$ 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
.