git push NOT 当前分支到远程

标签 git git-push

在 git bare 存储库中有没有办法推送一个现在不在 HEAD 中的分支?

例如我有两个分支:

$ git branch
* master
  another

我设置了两个 Remote :originanother

我需要能够在不更改 HEAD 的情况下仅在一个命令中从 another 推送到 another/another

最佳答案

原始问题中的所有那些“另一个另一个”,答案和大量评论是如此令人困惑(这是一个很好的例子,说明为什么一开始就正确命名你的东西很重要),我无能为力帮助(双关语不是故意的)写另一个答案如下。

问:在 git(裸)存储库中有没有办法立即推送 在 HEAD 中的分支?例如,我有两个分支和两个 Remote 。我需要能够在不更改 HEAD 的情况下仅在一条命令中从 feature 推送到 upstream/feature

$ git branch
* master
  feature
$ git remote
origin
upstream

答:执行git push remote_name branch_name。在上面的例子中,它看起来像这样。

$ git push upstream feature

Q:是不是意味着会将本地的feature推送到upstream/feature?我一直认为它会将当前的 HEAD 推送到 upstream/feature

答:是的。 feature 部分是一个 refspec ,其格式为 src:dst。意思是将本地分支src推送到远程分支dst。如果省略:dst,则将本地分支src推送到远程分支src。您也可以指定一个不同的名称作为远程分支。只是做:

$ git push upstream feature:cool_new_feature

(感谢@gabriele-petronella 和@alexkey 为这个答案提供 Material 。)

关于git push NOT 当前分支到远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699702/

相关文章:

git - 一个接一个地单独推送一个分支的所有提交

Windows 上的 Git : "I don' t handle protocol 'git clone http' "

git - "git push"是否推送来自其他分支的所有提交?

git - 配置 GitLab 以将 SAML OmniAuth 与 Active Directory IdP 结合使用

Git 非快进更新被拒绝 merge 远程更改

Git 通过端口 443

git - "Auto packing the repository for optimum performance"是什么意思?

git - 无法从用户存储库推送到位于 NAS 上的主存储库

git checkout <branch> -- <path> 不删除已删除的文件

git - 如何使用 'git pull' 恢复我的更改?