使用git 2.8.0,我在.gitconfig中定义了一个别名
[alias]
st = status然后如果我运行GIT_TRACE=1 git st,它需要7秒:
17:18:48.934703 git.c:564 trace: exec: 'git-st'
17:18:48.936703 run-command.c:336 trace: run_command: 'git-st'
17:18:55.734092 git.c:287 trace: alias expansion: st => 'status'
17:18:55.735092 git.c:564 trace: exec: 'git-status'
17:18:55.735092 run-command.c:336 trace: run_command: 'git-status'
17:18:55.772094 git.c:351 trace: built-in: git 'status'GIT_TRACE=1 git status它是瞬间的:
17:19:23.649688 git.c:351 trace: built-in: git 'status'这发生在windows机器上。你知道根本问题是什么吗?
发布于 2016-04-29 05:52:05
这种情况发生在windows机器上。你知道根本问题是什么吗?
由于git命令基于linux代码,因此它们针对基于unix操作系统进行了优化。
当你在Windows上运行它时(尤其是在GIT_TRACE打开的时候),git必须挂接和监听Windows系统调用,并为这些系统调用和事件设置详细和调试模式。
这就是它在Windows上运行缓慢的原因。
Github已经取得了git windows客户端的所有权,从版本2开始,他们就在不断地改进它。
请阅读以下内容(2.8的发行说明):
Convergence with Git for Windows
最近有一个很大的努力,让
在Windows上感觉像在Linux和OS X上一样舒适的。
例如,在Windows上启动进程的成本相对较高,因此许多最初作为脚本编写的命令已用C语言重写,以使它们更快的。
https://stackoverflow.com/questions/36925695
复制相似问题