来自 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
不应该只创建一个本地分支,在指定之前不会跟踪任何远程分支吗?这是我启用的触发此行为的配置吗?
这不是预期的行为。 最后不是你写例子的方式:
git checkout -b testbranch devbranch
即使devbranch
正在跟踪远程分支,这也不应设置任何跟踪。
但是,如果您的意思是此命令
git checkout -b testbranch origin/devbranch
然后,这将自动设置跟踪。如文档中所述:
当起点是远程跟踪分支时,此行为是默认行为
此外,您可能已将branch.autoSetupRebase
设置为 always
或pull.rebase
设置为 true
,因为您收到消息"通过变基"(而不是静默默认合并(。
如果您希望避免此行为,并从远程分支指向的同一提交创建一个分支,但不跟踪该远程分支,则可以运行此命令
git checkout --no-track -b testbranch origin/devbranch