【问题标题】:Understanding : git push --set-upstream "refspec" with and without prefixing "HEAD"理解: git push --set-upstream "refspec" 带和不带前缀“HEAD”
【发布时间】:2020-08-23 13:39:36
【问题描述】:

我有本地 git 分支 <BRANCH_NAME> 没有参考上游来源。我对本地分支进行了一些更改,并且 committed 在本地相同。我现在正在尝试推送到远程来源。

  1. 当我尝试: git push --set-upstream origin <BRANCH_NAME> 它抛出错误:
error:src refsprc <LOCAL_BRANHC_NAME> does not match any 
error: failed to push some refs to '<REMOTE_URL>
  1. 当我尝试 git push --set-upstream origin **HEAD:**&lt;BRANCH_NAME&gt;成功了

命令之间的区别在于 HEAD: 到“BRANCH_NAME”的前缀。所以我的问题是:

  1. 带/不带前缀“HEAD”的推送有什么区别?
  2. 如果我能获得 git 命令背后发生的事情的图形表示以便我更好地理解,那将会很有帮助。
  3. 如果我需要更多信息来澄清,请告诉我。

注意:

  • 我明白什么是 HEAD。它指向最新的提交 当前分支。
  • 我确实尝试了cat .git/HEAD,输出为ref: refs/heads/&lt;BRANCH_NAME&gt; - 这是正确的。
  • 我在 stackoverflow 的一些答案中注意到,有人提到它要做 git commit 。我也尝试过提交方法,但遇到了同样的错误。

提前致谢

【问题讨论】:

    标签: git gitlab git-push upstream-branch


    【解决方案1】:

    检查git status 的输出:您不会处于detached HEAD 模式,但您可以查看是否有可以添加/提交的未跟踪文件(如I mentioned here)。

    还要检查git branch -avv 的输出以查看本地和远程分支。

    【讨论】:

    • 感谢您的回复。 1.我确实检查了“git commit”相关的答案。正如我所提到的,我在本地做了“git commit”,然后只尝试了“git push”。 2.git branch -avv,因为是新的本地分支,所以没有的上游
    • @Sriram 你能在问题中添加分支列表(和标签,如果你有的话),只是为了检查该列表中的任何特殊情况? (git branch -l, git tag -l)
    猜你喜欢
    • 2018-02-07
    • 2011-12-06
    • 1970-01-01
    • 2021-05-15
    • 2016-08-08
    • 2018-11-05
    • 2014-11-23
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多