-u 选项在拉取时无法识别,只能在推入时识别
我的问题是 - 这样做有充分的理由吗?
嗯...实际上 Git 2.24(2019 年第四季度,4 年后)将为 git pull/git fetch 提供 -u!
官方原因:
“git fetch”学会了“--set-upstream”选项来帮助那些先
从他们打算推送到的私人分叉中克隆,添加真正的
上游通过“git remote add”,然后是“git fetch”。
你可以关注the discussions here。
参见Corentin BOMPARD (``)commit 24bc1a1(2019 年 8 月 19 日)。
(由 Junio C Hamano -- gitster -- 合并于 commit 9437394,2019 年 9 月 9 日)
pull,fetch:添加--set-upstream选项
将--set-upstream 选项添加到git pull/fetch,允许用户为当前分支设置上游配置(branch.<current-branch-name>.merge 和branch.<current-branch-name>.remote)。
一个典型的用例是:
git clone http://example.com/my-public-fork
git远程添加主http://example.com/project-main-repo
git pull --set-upstream main master
或者,而不是最后一行:
git fetch --set-upstream main master
git merge # 或 git rebase
这主要相当于克隆 project-main-repo(它设置 upsteam)然后“git remote add”my-public-fork,但对于使用允许从 Web UI 分叉的托管系统的人来说可能感觉更自然.
此功能类似于“git push --set-upstream”。
注意:最后一个功能引入了一种类型,已在 Git 2.25(2020 年第一季度)中修复。
见Ralf Thielow (ralfth)commit 391c7e4(2019 年 10 月 31 日)。
(由 Junio C Hamano -- gitster -- 合并于 commit 7ab2088,2019 年 12 月 1 日)
签字人:Ralf Thielow
审核人:Jonathan Nieder
所以不是:
multiple branch detected, incompatible with --set-upstream
但是:
multiple branches detected, incompatible with --set-upstream
注意:使用 Git 2.27(2020 年第二季度),文档已更新。
参见 René Scharfe (rscharfe) 的 commit 9c68873(2020 年 3 月 9 日)。
(由 Junio C Hamano -- gitster -- 合并到 commit ab8ef92,2020 年 3 月 25 日)
pull: 记录更多的 passthru 选项
签字人:René Scharfe
git pull 接受选项 --dry-run、-p/--prune、--refmap 和 -t/--tags,因为 a32975f516 ("pull: 将 git-fetch 的选项传递给 @ 987654339@", 2015-06-18, Git v2.6.0-rc0 -- merge 列在batch #0), -j/--jobs 自62104ba14a (子模块: 允许并行获取, 添加测试和文档, 2015-12-15, Git v2.8.0-rc0) 和 --set-upstream 自 24bc1a1292 (pull, fetch: git add --set-upstream option, 2019-08-19, Git v2.24.0-rc0)。更新其文档以匹配。
注意:使用 Git 2.29(2020 年第四季度),--set-upstream 选项更加清晰:
参见Philippe Blain (phil-blain) 的commit 847b372(2020 年 8 月 12 日)。
(由 Junio C Hamano -- gitster -- 合并于 commit ee356a8,2020 年 8 月 19 日)
签字人:Philippe Blain
git fetch的'--set-upstream'选项(man)(git pull也接受(man)并通过到底层的git fetch(man)) 允许为当前分支设置上游配置。
这是在 24bc1a1292 中添加的(pull,fetch:添加 --set-upstream 选项,2019-08-19,Git v2.24.0-rc0)。
但是,该选项的文档将其操作描述为“如果成功获取远程,则拉取并添加上游(跟踪)引用 [...]”,这是错误的,因为此选项不会导致 git fetch也没有git pull拉:
修正该选项的描述。
如果远程获取成功,添加上游
documentation 现在包括:
如果远程获取成功,添加上游(跟踪)引用,由无参数git pull 和其他命令使用。
它消除了拉取然后添加上游的概念。