我有一个相当大的Git存储库。因此,我非常努力避免运行任何缓慢的Git操作。
例如,我的status
命令总是类似于git status -uno -- <dir>
,它在一秒内很好地完成(与根目录中的git status -u
相比可能需要一分钟)。
不幸的是,我发现使用git add -i
落入了#34;方式太慢而无法使用&#34;。我可以跟踪命令执行,似乎大部分时间花在update-index
操作上。无论我在命令行上提供什么路径规范,操作总是在整个工作区上执行。
我希望在将文件添加到索引时使用交互模式。有没有办法避免完整update-index
操作或以其他方式加快速度?
$ cd cm/
$ GIT_TRACE=1 git add -u -p -- my_file
trace: built-in: git 'add' '-u' '-p' '--' 'my_file'
trace: run_command: 'add--interactive' '--patch' '--' 'cm/my_file'
trace: exec: 'git' 'add--interactive' '--patch' '--' 'cm/my_file'
trace: exec: 'git-add--interactive' '--patch' '--' 'cm/my_file'
trace: run_command: 'git-add--interactive' '--patch' '--' 'cm/my_file'
trace: built-in: git 'rev-parse' '--show-prefix'
trace: built-in: git 'config' '--get-colorbool' 'color.interactive' 'true'
trace: built-in: git 'config' '--get-color' 'color.interactive.prompt' 'bold blue'
trace: built-in: git 'config' '--get-color' 'color.interactive.header' 'bold'
trace: built-in: git 'config' '--get-color' 'color.interactive.help' 'red bold'
trace: built-in: git 'config' '--get' 'color.interactive.help'
trace: built-in: git 'config' '--get-color' 'color.interactive.error' 'red bold'
trace: built-in: git 'config' '--get-colorbool' 'color.diff' 'true'
trace: built-in: git 'config' '--get-color' 'color.diff.frag' 'cyan'
trace: built-in: git 'config' '--get-color' 'color.diff.plain' ''
trace: built-in: git 'config' '--get-color' 'color.diff.old' 'red'
trace: built-in: git 'config' '--get-color' 'color.diff.new' 'green'
trace: built-in: git 'config' '--get-color' '' 'reset'
trace: built-in: git 'config' '--bool' '--get' 'interactive.singlekey'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'update-index' '--refresh'
^C