最近我一直在使用 git stash 很多次,我一直在想它真的很慢,即使是在一个只有一个文件的新存储库上也是如此。我已经阅读了这个关于 git stash slowness 的问题和另一个问题,并尝试了这些问题的所有答案,但实际上没有任何效果。
例如,我已经完成了以下步骤来重现它:
git init
touch file.txt
vim file.txt
(编辑文件添加 2 行)git add .
git commit -m "Initial commit"
vim file.txt
(再次编辑添加1行)time git stash
输出:
$ time git stash
Saved working directory and index state WIP on master: b9454ed Initial commit
HEAD is now at b9454ed Initial commit
real 0m8.042s
user 0m0.000s
sys 0m0.046s
8 秒存储单行是这么多的时间。现在使用 libgit2sharp 进行测试:
static void Main(string[] args)
{
Repository repo=new Repository(@"C:\Users\UserTest\TestGitRepo");
repo.Stashes.Add(new Signature("test", "test@test.com", new DateTimeOffset(DateTime.Now)), "Stash on master");
}
此代码需要 74 毫秒来存储相同的更改。如果 Libgit2 这么快,那么应该可以加快git stash
命令速度。我怎样才能做到这一点?
实际上使用的是 windows 10 64bit 和 git 2.11 64bits。其他 git 命令(如状态、添加、提交等)工作正常。
更新:我已经更新到 git 2.13,现在是 14,53s git stash
......
更新 2:我已经更新到 git 2.15 并尝试相同的测试time git stash
返回real 0m6,553s
。还是很慢。。。