什么是`git push origin master`? 帮助与git的裁判,头和遥控器

我有一个关于git push origin master问题:

  • 我知道origin是远程的(又名GitHub)
  • git push origin mastergit push origin master_on_my_machine:master_on_github相同git push origin master_on_my_machine:master_on_github
  • 我不知道是否:

  • master_on_my_machine等于/refs/heads/master
  • master_of_github等于/refs/remotes/origin/master
  • 如果它是平等的,应该可以做git push origin refs/heads/master:refs/heads/origin/master

    最后,我想要做的只是在以下情况下输入git pushgit pull

  • 我在一个主分支上
  • 我想推拉github上的my_test分支,只需输入git pushgit pull

  • Git有两种类型的分支: localremote 。 要使用git pullgit push ,你必须告诉你的本地分支( my_test )它跟踪哪个远程分支。 在典型的Git中,这可以在配置文件和命令中完成。

    命令

    确保你在你的master分支上

    1) git checkout master

    然后创建新的分支

    2) git branch --track my_test origin/my_test

    并检查出来

    3) git checkout my_test

    然后,您可以pushpull ,而无需指定其本地和远程。

    不过,如果你已经创建分支,那么你可以使用-u开关来告诉Git的pushpull你想使用指定的本地和远程分支机构从现在开始,像这样:

    git pull -u my_test origin/my_test
    git push -u my_test origin/my_test
    

    配置

    设置远程分支跟踪的命令非常简单,但我列出了配置方式,以及如果我设置了一堆跟踪分支,我发现它更容易。 使用你最喜欢的编辑器打开你的项目的.git/config并在底部添加以下内容。

    [remote "origin"]
        url = git@github.com:username/repo.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "my_test"]
        remote = origin
        merge = refs/heads/my_test
    

    这指定了一个远程调用的origin ,在本例中是一个GitHub样式,然后告诉分支my_test使用它,因为它是远程的。

    在运行上述命令后,您可以在配置中找到与此类似的东西。

    一些有用的资源:

  • http://www.kernel.org/pub/software/scm/git/docs/git-branch.html
  • http://gitready.com/beginner/2009/03/09/remote-tracking-branches.html

  • 或者作为一个命令:

    git push -u origin master:my_test
    

    将提交从本地主分支推送到(可能是新的)远程分支my_test ,并将master设置为跟踪origin/my_test

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

    上一篇: What is `git push origin master`? Help with git's refs, heads and remotes

    下一篇: Update a local branch with the changes from a tracked remote branch