How do I push a new local branch to a remote Git repository and track it too?

I want to be able to do the following:

  • Create a local branch based on some other (remote or local) branch (via git branch or git checkout -b )

  • Push the local branch to the remote repository (publish), but make it trackable so git pull and git push will work immediately.

  • How do I do that?

    I know about --set-upstream in Git 1.7, but that is a post-creation action. I want to find a way to make a similar change when pushing the branch to the remote repository.


    In Git 1.7.0 and later, you can checkout a new branch:

    git checkout -b <branch>
    

    Edit files, add and commit. Then push with the -u (short for --set-upstream ) option:

    git push -u origin <branch>
    

    Git will set up the tracking information during the push.


    If you are not sharing your repo with others, this is useful to push all your branches to the remote, and --set-upstream tracking correctly for you:

    git push --all -u
    

    (Not exactly what the OP was asking for, but this one-liner is pretty popular)

    If you are sharing your repo with others this isn't really good form as you will clog up the repo with all your dodgy experimental branches.


    Prior to the introduction of git push -u , there was no git push option to obtain what you desire. You had to add new configuration statements.

    If you create a new branch using:

    $ git checkout -b branchB
    $ git push origin branchB:branchB
    

    You can use the git config command to avoid editing directly the .git/config file.

    $ git config branch.branchB.remote origin
    $ git config branch.branchB.merge refs/heads/branchB
    

    Or you can edit manually the .git/config file to had tracking information to this branch.

    [branch "branchB"]
        remote = origin
        merge = refs/heads/branchB
    
    链接地址: http://www.djcxy.com/p/82.html

    上一篇: 我如何从JavaScript对象中移除一个属性?

    下一篇: 如何将新的本地分支推送到远程Git存储库并进行跟踪?