到目前为止,我已采取以下步骤:
- 克隆了一个远程Git仓库
- 将主分支分支到实验分支
- 在实验分支中编辑/测试/提交的代码
现在,我还没有准备好将实验性项目合并到主项目中。但是,我确实想将其推回远程仓库,因为那是我与一些同事共享的存储库。我希望他们看到我在实验分支中所做的事情。我通常只通过SSH访问远程仓库。
如何在远程存储库上共享我的本地分支,而又不影响远程存储库的主分支?
到目前为止,我已采取以下步骤:
现在,我还没有准备好将实验性项目合并到主项目中。但是,我确实想将其推回远程仓库,因为那是我与一些同事共享的存储库。我希望他们看到我在实验分支中所做的事情。我通常只通过SSH访问远程仓库。
如何在远程存储库上共享我的本地分支,而又不影响远程存储库的主分支?
Answers:
根据git push手册页:
git push origin experimental
experimental
在源存储库中找到匹配的引用(很可能会找到refs/heads/experimental
),并refs/heads/experimental
在源存储库中更新相同的引用(例如)。
如果experimental
不存在,则将创建它。
这与以下内容相同:
git push origin experimental:refs/heads/experimental
experimental
通过复制当前experimental
分支在原始存储库中创建分支。仅当本地名称和远程名称不同时,才需要使用
此表单在远程存储库中创建新的分支或标记。否则,引用名称本身将起作用。
或者,如git tip中所述,您可以设置“分支的默认遥控器”:
您可以使用git config将默认的远程分配给给定的分支。除非另外指定,否则将使用此默认远程服务器来推送该分支。
当您使用git clone时,已经为您完成了此操作,允许您使用不带任何参数的git push来推送本地master分支以更新原始存储库的master分支。
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
-u
选项push
来确保您的本地分支在将其公开后跟踪该远程分支。如果您忘记使用该-u
选项,则只需git push -u
稍后在分支中键入即可git pull
。
git push origin experimental
,没有任何包被上传的证据。看起来遥控器已经拥有您之前的推送中的所有内容;它只需要挂在refs上。
git push origin experimental
只需experimental
在远程上创建分支。
如果你的分支的名称experimental
,和远程的名字origin
,那么它的
git push origin experimental
这是用于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
通常,您将有一个默认的remote origin
。所以你的命令看起来像:
$ git push --set-upstream origin your_new_branch
并且所有随之而来的推动都可以用git push
。