如何将更改作为分支推送到不在主线中的远程服务器

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 获取。并且不允许其他用户更新此参考。

【讨论】:

以上是关于如何将更改作为分支推送到不在主线中的远程服务器的主要内容,如果未能解决你的问题,请参考以下文章

为什么我的远程主分支中的更改没有被拉到本地主分支中?

分支远程运行触发器不在Teamcity上运行

git - 将某个分支推送到远程的某个分支

如何在 Git 中创建新的本地分支?

git 如何将当前分支推送到另一个远程/源?

如何查看所有未推送到远程分支的本地提交?