如何在`git add -i`期间避免`update-index`操作?

时间:2015-08-25 19:01:29

标签: git git-add

我有一个相当大的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

0 个答案:

没有答案