如何将更改作为分支推送到不在主线中的远程服务器
Posted
技术标签:
【中文标题】如何将更改作为分支推送到不在主线中的远程服务器【英文标题】:How to push changes as a branch to remote server not in Main line 【发布时间】:2016-12-28 14:17:17 【问题描述】:我从 git 存储库(远程服务器)中提取了一个项目。我做了一些修改。
现在我需要在不在主线的服务器中作为分支推送。 例如,在服务器中,V1->V2->V3。 我的工作区在 V2 上。我想作为 V2.1 推送。不像V4。
我用于推送的常用命令是git push origin HEAD:refs/for/master/issue5221
。
是否有一些东西可以替换该命令中的master
以作为分支推送?
我尝试了类似git push origin HEAD:refs/for/my_branch/issue5221
的东西。但它不起作用。由于“my_branch
”不在远程服务器中。
【问题讨论】:
【参考方案1】:您应该能够将 HEAD 推送到新分支(在收到提交时创建):
git push origin HEAD:my_branch/issue5221
(更一般地说,you can push a local branch to a remote repo on a different branch)
【讨论】:
【参考方案2】:看来您正在使用 Gerrit。所以你需要让管理员创建分支refs/heads/my_branch/issue5221
,然后你可以推送到refs/for/my_branch/issue5221
。如果这不是官方分支,您可以通过git push origin HEAD:refs/sandbox/<your-username>/<any-name-you-want>
将其推送到沙箱分支。 refs/sandbox/<your-username>/*
无法通过git clone
获取,但可以通过git fetch origin refs/sandbox/<your-username>/* && git checkout FETCH_HEAD
获取。并且不允许其他用户更新此参考。
【讨论】:
以上是关于如何将更改作为分支推送到不在主线中的远程服务器的主要内容,如果未能解决你的问题,请参考以下文章