跟踪其他本地分支机构的本地分支机构有哪些用例?

Eli*_*sky 18 git version-control

在Git中我们可以这样做:

$ git checkout -b testbranch --track master
Branch testbranch set up to track local branch master.
Switched to a new branch 'testbranch'
Run Code Online (Sandbox Code Playgroud)

这些分支的用例是什么?

Ric*_*sen 6

设置本地分支以跟踪另一个本地分支通常不是很有用,但我可以想到几个可以方便的情况:

  • 您可能有一些别名或脚本可以处理上游分支(例如,通过@{u}简写;请参阅参考资料git help revisions).如果是这样,配置本地分支跟踪另一个本地分支将允许您测试您的别名或脚本,而不影响远程仓库或创建一个临时的虚拟存储库.

  • 假设你正在研究一个新的名为当地分行foo关闭当地的master分支机构(跟踪origin/master),但你还没有准备好发布fooorigin呢.或者,也许你再也不想推到origin-也许是提交添加了一堆讨厌的printf(),你洒在帮助调试电话.无论如何,无论什么时候master更新,你都想要重新foo加入master.通常你会打字git rebase master,但如果你像我一样,你可能会发现自己经常只是git rebase出于习惯而打字.如果您这样做,您将收到以下错误消息:

    $ git rebase
    There is no tracking information for the current branch.
    Please specify which branch you want to rebase against.
    See git-rebase(1) for details
    
        git rebase <branch>
    
    If you wish to set tracking information for this branch you can do so with:
    
        git branch --set-upstream-to=origin/<branch> foo
    
    Run Code Online (Sandbox Code Playgroud)

    你可能想要这样做:

    git branch --set-upstream-to=origin/master foo
    
    Run Code Online (Sandbox Code Playgroud)

    但可以有毁灭性的影响,如果你在打字的习惯是git push每天几次提交(你最终会推动你的工作在进步在您的本地提交foo分支originmaster分支,假设你已经push.default设置为upstream像我这样做) .

    相反,您可以配置本地foo分支以跟踪本地master分支.现在,你的打字习惯git rebase你想要做什么,和心不在焉git push只会弄乱你的本地master分支,不是originmaster分支.

    但是,配置本地分支以跟踪另一个本地分支通常是不值得的git rebase.我认为记住键入git rebase master而不是更容易生活git rebase.如果我忘记了,我会收到一条错误消息,让我记忆犹新,然后再试一次.没什么大不了.