从git文档中,
git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
start_point
被定义为基于来自起点分支或提交的提交来创建新分支,但是在这种特定情况下,还创建了一个跟踪起点的分支,例如:
git checkout -b testbranch devbranch
输出:
Branch testbranch set up to track remote branch devbranch from origin by rebasing.
这是预期的行为吗? git checkout
是否应该只创建一个本地分支,直到指定该分支才跟踪任何远程分支?我启用的配置会触发这种行为吗?
答案 0 :(得分:1)
这不是预期的行为。最终不像您编写示例那样:
git checkout -b testbranch devbranch
即使devbranch
正在跟踪远程分支,也不应设置任何跟踪。
但是,如果您要使用此命令
git checkout -b testbranch origin/devbranch
这将有望自动设置跟踪。如the documentation中所述:
当起点是远程跟踪分支时,此行为是默认行为
此外,您可能已经将branch.autoSetupRebase
设置为always
或将pull.rebase
设置为true
,因为您收到了“通过重新设置基准”消息(而不是默认的静默合并)
如果您希望避免这种行为,并从远程分支指向的同一提交创建分支,但不跟踪该远程分支,则可以运行此命令
git checkout --no-track -b testbranch origin/devbranch