Git推送到远程分支

我试图遵循这个帖子,但感到困惑,而不是让我的问题得到解决。

这是场景。

我创建了一个像git checkout -b <branch_name>的分支。 然后,我做了一些改变,并做了

  • git add .
  • git commit -m "comment"
  • 现在所有这些更改都在我未提交的本地<branch_name>分支中。 我想要做的是推动这些变化上游,但我想推到它不存在的分支,例如, <branch_name>_test

    我不想将它推送到我的<branch_name> 。 我怎么能这样做。


    只需将此分支推送到不同的分支名称即可

     git push -u origin branch_name: branch_name_test
    

    首先,让我们注意到git push “想要”两个参数,如果你不提供它们,它们会自动完成它们。 因此基本的命令是git push remote refspec

    remote部分通常微不足道,因为它几乎总是单词的origin 。 更棘手的部分是refspec 。 大多数情况下,人们在这里写一个分支名称: git push origin master ,例如。 这会使用您的本地分支推送到远程的同名分支1,并在必要时创建它。 但它不一定只是一个分支名称。

    特别是, refspec有两个冒号分隔的部分。 对于git push ,左边的部分标识要推送的内容2,右边的部分标识要提供给远程的名称。 在这种情况下,左边的部分是branch_name ,右边的部分是branch_name_test 。 例如:

    git push origin foo:foo_test
    

    当你在执行push操作时,你可以通过在git push选项中加-u来告诉你的git push来同时设置分支的上游名称。 设置上游名称可以让你的git保存foo_test (或其他名称)的名称,这样,当你在foo分支上时,将来没有参数的git push可以尝试推送到远程的foo_test (git还可以保存远程, origin在这种情况下,让你不必要么进入)。

    你只需要传递-u一次:它基本上只是为你运行git branch --set-upstream-to 。 (如果稍后再传递-u ,它会重新运行上游设置,按指示更改它,或者您可以git branch --set-upstream-to自己运行git branch --set-upstream-to 。)

    但是,如果你的git是2.0或更新的版本,并且你没有设置任何特殊的配置,你会遇到同样的事情,让我进入上面的脚注1: push.default将被设置为simple ,这将拒绝推因为上游的名称不同于你自己的本地名称。 如果将push.default设置为upstream ,git将停止抱怨 - 但最简单的解决方案是首先重命名本地分支,以便本地名称和远程名称匹配。 (要设置什么设置和/或是否要重命名分支,取决于您。)


    更确切地说,git会咨询您的remote.remote.push设置以获得refspec的上游一半。 如果你没有在这里设置任何东西,默认是使用相同的名称。

    2这不一定是分支名称。 例如,您可以在这里提供HEAD或提交散列。 如果您使用除分支名称以外的其他名称,则可能必须列出右侧的完整refs/heads/branch (取决于远程中已有的名称)。


    git push --set-upstream origin <branch_name>_test

    --set-upstream设置本地分支和远程之间的关联。 你只需要第一次做。 在随后的推送中,您可以执行以下操作:

    git push

    如果您还没有设置origin ,请使用:

    git remote add origin <repository_url>然后重试上述命令。

    链接地址: http://www.djcxy.com/p/4597.html

    上一篇: Git pushing to remote branch

    下一篇: How do I create a new branch in git?