Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:如何从“推”;“无分支机构”;到一个新的远程分支?_Git_Branch_Push_Remote Branch - Fatal编程技术网

Git:如何从“推”;“无分支机构”;到一个新的远程分支?

Git:如何从“推”;“无分支机构”;到一个新的远程分支?,git,branch,push,remote-branch,Git,Branch,Push,Remote Branch,我做到了: 我可以在不创建本地分支的情况下推送到新分支吗?试试看 $ git push origin ignore-netbeans-config error: src refspec ignore-netbeans-config does not match any. 让我们先澄清一些小细节: 分支是refs/heads命名空间下的“ref”。只要ls.git/refs/heads和cat那里的文件就可以明白我的意思 标签在refs/tags名称空间下为“ref”。只需ls.git/refs

我做到了:

我可以在不创建本地分支的情况下推送到新分支吗?

试试看

$ git push origin ignore-netbeans-config
error: src refspec ignore-netbeans-config does not match any.

让我们先澄清一些小细节:

  • 分支是
    refs/heads
    命名空间下的“ref”。只要
    ls.git/refs/heads
    cat
    那里的文件就可以明白我的意思
  • 标签在
    refs/tags
    名称空间下为“ref”。只需ls
    .git/refs/tags
    就可以自己查看了
  • HEAD
    只是另一个“ref”,但它的特殊之处在于它可以是“符号”。只需
    cat.git/HEAD
    看看它说了什么
  • push
    操作对“ref”进行操作,默认的“映射”保留名称空间。这意味着,当我按下一个分支时,它将在遥控器上显示为一个分支;当我按下标签时,它将在遥控器上显示为标签。考虑下面的场景:

  • 我想推送标记
    moo
    ,使其在远程服务器上显示为一个分支(是的,我实际上是在将标记“转换”为分支)。我将这样做:

    git推送原点moo:refs/heads/moo

  • Git需要一种区分快进推送和非ff推送的方法,这样人们就不会错误地覆盖其他人的工作。假设我要推送分支
    master
    next
    pu
    ,其中只有
    pu
    是非ff。我将这样做(请注意,在使用
    +
    时,必须提供显式映射):

    git下一步推送原始主机+pu:pu

  • 现在,让我们来回答你的问题。您希望推送您的
    HEAD
    ,使其作为名为“ignore netbeans config”的分支出现在远程服务器的
    refs/heads
    命名空间中。如果此分支以前不存在,或者您正在覆盖其中的某些提交(即非ff推送),请使用
    +
    。否则,不要。最终结果:

    git-push-origin+HEAD:refs/heads/ignore-netbeans-config


  • TL;DR版本:
    git推送原点+HEAD:refs/heads/ignore netbeans config

    问得好!当然,如果您可能在此处进行任何进一步的编辑,您可能希望继续创建一个分支以确保安全。您应该能够省略其中的“refs/heads/”部分。我想如果它不存在,您必须明确。感谢您的解释!
    $ git push origin ignore-netbeans-config
    error: src refspec ignore-netbeans-config does not match any.
    
    git push origin HEAD:refs/heads/ignore-netbeans-config