GitLab 如何将更改推送到与非主分支不同的远程分支?
How in GitLab push changes to a remote branch that has diverged from non-master branch?
我的分支 dev_match_test
是对分支 origin/dev
的更新。
我想将 dev_match_test
分支的本地更改发送到远程存储库,
这样将 dev_match_test
合并到 dev
的合并请求可以在以后获得批准。
git status
命令表示:
On branch dev_match_test
Your branch is ahead of 'origin/dev' by 22 commits.
(use "git push" to publish your local commits)
但是git push
returns一个错误:
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push origin HEAD:dev
To push to the branch of the same name on the remote, use
git push origin dev_match_test
尝试两个建议的选项都没有用:
git push origin HEAD:dev
returns一个错误
remote: GitLab: You are not allowed to push code to protected branches on this project.
我怀疑这是因为我试图将更改推送到 dev
而我没有这样做的权限。相反,我想推到 dev_match_test
.
git push origin dev_match_test
只是 returns 一条消息 Everything up-to-date
什么都不做。
问题:如何将本地更改推送到dev_match_test
分支?
最简单的方法可能是简单地从您所在的当前分支创建一个新分支,推送到远程,然后将新分支合并到开发中。
- 从当前分支创建一个新分支:
git checkout -b newBranchName
- 推送到远程:
git push -u origin newBranchName
- 在 GitLab 中,为 newBranchName 创建一个合并请求到 dev
请注意,这并不能解决您的分支 dev_match_test 未正确推送到远程的问题。要解决这个问题,更多信息会有所帮助。我怀疑分支 dev_match_test 被设置为从 origin/dev 而不是 origin/dev_match_test 进行跟踪。如果您可以发送 git remote -v
的输出(请隐藏 URL),那可能会有帮助。
如果您收到消息“everything up-to-date”,这意味着您所有的本地提交过去都已推送到远程。
只需在 GitLab 中创建一个新的合并请求和 select 正确的目标 (dev
) 和源 (dev_match_test
) 分支,您应该已经准备就绪。
我的分支 dev_match_test
是对分支 origin/dev
的更新。
我想将 dev_match_test
分支的本地更改发送到远程存储库,
这样将 dev_match_test
合并到 dev
的合并请求可以在以后获得批准。
git status
命令表示:
On branch dev_match_test
Your branch is ahead of 'origin/dev' by 22 commits.
(use "git push" to publish your local commits)
但是git push
returns一个错误:
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push origin HEAD:dev
To push to the branch of the same name on the remote, use
git push origin dev_match_test
尝试两个建议的选项都没有用:
git push origin HEAD:dev
returns一个错误
remote: GitLab: You are not allowed to push code to protected branches on this project.
我怀疑这是因为我试图将更改推送到 dev
而我没有这样做的权限。相反,我想推到 dev_match_test
.
git push origin dev_match_test
只是 returns 一条消息 Everything up-to-date
什么都不做。
问题:如何将本地更改推送到dev_match_test
分支?
最简单的方法可能是简单地从您所在的当前分支创建一个新分支,推送到远程,然后将新分支合并到开发中。
- 从当前分支创建一个新分支:
git checkout -b newBranchName
- 推送到远程:
git push -u origin newBranchName
- 在 GitLab 中,为 newBranchName 创建一个合并请求到 dev
请注意,这并不能解决您的分支 dev_match_test 未正确推送到远程的问题。要解决这个问题,更多信息会有所帮助。我怀疑分支 dev_match_test 被设置为从 origin/dev 而不是 origin/dev_match_test 进行跟踪。如果您可以发送 git remote -v
的输出(请隐藏 URL),那可能会有帮助。
如果您收到消息“everything up-to-date”,这意味着您所有的本地提交过去都已推送到远程。
只需在 GitLab 中创建一个新的合并请求和 select 正确的目标 (dev
) 和源 (dev_match_test
) 分支,您应该已经准备就绪。