为何git无上游分支时push提示完整可复制命令,而pull提示不提供?
这一差异本质来自Git在两种操作场景下掌握的确定信息量不同:
- 执行
push操作时,Git有足够的无歧义信息生成完整可执行命令:
你执行push的目标默认是当前仓库绑定的主远程仓库(通常为origin),且Git默认遵循「本地分支推送至同名远程分支」的通用约定,结合你当前所在的本地分支名development-branch,Git可以100%确定你要设置的上游是origin/development-branch,所以会直接给出可直接复制运行的完整命令。 - 执行
pull操作时,Git无法推定你要绑定的上游分支的准确信息:
上游关联的场景存在很多变量:你可能要绑定的不是默认的origin远程,而是其他额外添加的远程仓库;也可能本地分支需要关联的远程分支和本地分支名并不相同(比如本地分支叫dev,对应远程的development分支)。Git没有办法默认替你决定要关联的远程分支具体是哪一个,所以只能用<branch>占位符留给你自行填写,只有末尾的本地分支名是Git明确已知的信息,所以会直接帮你补全。
内容的提问来源于stack exchange,提问作者martorad
相关产品推荐
相关产品推荐

