我只是改变了我的项目的层次结构,移动了一个包含数万个文件的文件夹,并运行了git add --all
。 git status
命令现在没用了 - 它打印出数千行,太大而无法读取。
在提交之前检查暂存区域状态的最佳方法是什么?
Git通过比较每对文件删除/添加来检测文件重命名,即O(n2)。为了保持较低的计算时间,如果文件太多,它将不会尝试检测重命名。
试试git diff -l0 --name-status --cached HEAD
:
-l0
将重命名检测的限制设置为某个非常高的数字--name-status
只是打印出每个文件的状态
R100 old_name new_name
表明old_name
被删除,new_name
添加了100%匹配的内容--cached HEAD
比较最后一次提交和当前阶段。您可以省略--cached
来比较最后一次提交和当前工作树,这在git add -A/--all
之后应该是相同的。还有-C --find-copies-harder
用于复制检测。