我如何理解为什么或何时结帐会导致某些内容暂存而不是仅复制到工作目录中?
从 Git 2.21(2019 年第一季度)开始,您将确切知道 git checkout 何时修改文件(而不是 HEAD 或分支):“ git checkout [<tree-ish>] path...
”学会报告已从索引或树中签出的路径数,这使它具有与命令签出分支的情况相同程度的噪声。
请参阅Nguyễn Thái Ngọc Duy ( ) 的提交 0f086e6(2018 年 11 月 13 日)。(由Junio C Hamano 合并 -- --在提交 4084df4中,2019 年 1 月 14 日)pclouds
gitster
checkout
:检查路径时打印一些东西
“”的问题之一git checkout
是它做了很多不同的事情,当我们不能正确处理歧义时,它可能会特别混淆人们。
帮助解决这个问题的一种方法是告诉用户实际执行了哪种操作。切换分支时,我们总是打印一些东西,除非--quiet
:
HEAD is now at ..."
Reset branch ..."
Already on ..."
Switched to and reset ..."
Switched to a new branch ..."
Switched to branch ..."
然而,检查路径是无声的。
打印一些东西,这样如果我们弄错了用户意图,他们就不会浪费太多时间来发现它。
对于剩余的结帐情况,我们现在打印:
Checked out ... paths out of the index
Checked out ... paths out of <abbrev hash>
由于打印 this 的目的是帮助消除歧义,因此仅在缺少"" 时才这样做--
。
但是:“ git checkout [<tree-ish>] <pathspec>
”开始报告最近更新的路径数,但在“ git checkout -m <pathspec>
”解决刚刚解决的冲突时给出了相同的消息。
该消息现在将这些未解析的路径与从索引中检出的路径分开报告。
请参阅Nguyễn Thái Ngọc Duy ( )的提交 1d1f689和提交 3c5883b(2019 年 2 月 6 日) 。(由Junio C Hamano 合并 -- --在提交 87c9831中,2019 年 2 月 9 日)pclouds
gitster
checkout
: 分别计算和打印-m
路径
从0f086e6 开始(checkout
:在签出路径时打印一些东西 - 2018-11-13),此命令报告从哪个源(从树或从索引)更新了多少路径。
我忘记了还有第三个来源:-m
使用时,会重新创建合并冲突(授予,也来自索引,但它不是索引的直接副本)。
分别计算和报告未合并的路径。
有更多更新以避免报告:
Recreated X merge conflicts
Updated 0 paths from the index
第二行是不必要的。虽然如果没有冲突娱乐,我们仍然报告
Updated 0 paths from the index
明确地说,我们并没有真正做任何事情。