相关疑难解决方法(0)

在Windows 7 x64上,Git Bash非常慢

在一个小项目的开发过程中,我一直在Windows和Ubuntu上使用Git,经常在两者之间来回翻转.问题是Git Bash一直变慢.

当我说慢时,我的意思是跑步cd需要8到25秒,运行git命令需要5-20秒,ls有时可能需要30秒.毋庸置疑,这并不好玩,更不用说非生产性了.我知道Git在Windows上比较慢,但这太荒谬了.

对我来说暂时工作的一个解决方案是禁用我的网络连接(如本答案所示),启动Git Bash,然后重新连接.有时它会在这样做之后继续快速运行数天,但性能总是最终会降低.我已经在msysgit讨论组,Stack Overflow,msysgit问题列表等中打开和关闭了几个星期,但我还没有找到有效的解决方案.

到目前为止,我已经尝试过:

  • 将Git和项目文件夹添加到病毒扫描程序的排除列表中
  • 完全禁用我的病毒扫描程序(Kaspersky IS 2011)
  • 确保Outlook未运行(Outlook 2007)
  • 关闭所有其他应用程序
  • 以管理员身份运行Git Bash
  • 禁用网络连接,启动Git Bash并禁用连接
  • 禁用网络连接,启动Git Bash,重新启用连接(仅偶尔工作)
  • 运行 git gc
  • 以及上述的组合

我确实读到有几个人成功禁用Bash完成,但理想情况下我想保持活跃.msysgit的版本是1.7.3.1-preview20101002,操作系统是Windows 7 x64.可以预见,在Linux上运行相同的东西是快速的.我会专门使用Linux,但我也需要在Windows中运行东西(某些应用程序,测试等).

有没有人遇到类似的问题?如果是这样,那么潜在的问题是什么?解决方案是什么(如果有的话)?

这超出了Git存储库,但仅供参考,我一直使用Git的存储库非常小:最多4-50个文件.

git bash msysgit mingw32 windows-7

418
推荐指数
14
解决办法
16万
查看次数

git stash在windows上很慢

在我的Windows机器git stash上每次调用都有大约3.5秒的开销,这为我的git commit hook添加了大约7秒.

linux(同一台机器)下的相同命令大约需要0.01秒.性能问题也适用于空存储库.

我从这个线程这个线程尝试了以下内容:

  • core.fscache 被设置为 true
  • core.preloadindex 被设置为 true
  • gc.auto 被设置为 256
  • 设置PS1 ='$'
  • 在管理模式下运行cmd
  • cmd.exe中运行而不是git-bash

运行 GIT_TRACE=true git stash list

16:58:16.844591 git.c:563               trace: exec: 'git-stash' 'list'
16:58:16.844591 run-command.c:336       trace: run_command: 'git-stash' 'list'
16:58:19.699591 git.c:350               trace: built-in: git 'rev-parse' '--git-dir'
16:58:19.859591 git.c:350               trace: built-in: git 'rev-parse' '--git-path' 'objects'
16:58:20.069591 git.c:350               trace: built-in: git 'rev-parse' '--show-toplevel'
16:58:20.154591 git.c:350               trace: built-in: git 'rev-parse' '--git-path' 'index'
16:58:20.244591 git.c:350               trace: built-in: git 'config' …
Run Code Online (Sandbox Code Playgroud)

windows git git-stash git-bash

51
推荐指数
1
解决办法
7257
查看次数

__git_ps1在内核树中非常慢

$ time __git_ps1
((v2.6.33.4))
real    0m1.467s
user    0m0.864s
sys  0m0.564s
Run Code Online (Sandbox Code Playgroud)

这让我的提示无法使用; 但另一方面,轻松放弃这个功能太有用了.知道为什么它运行如此缓慢以及我能做些什么呢?

设置细节:

$ uname -a
Linux martin-laptop 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:36:48 UTC 2010 i686 GNU/Linux

$ git --version
git version 1.7.1

$ du -sh .
876M    .
Run Code Online (Sandbox Code Playgroud)

我怀疑我的机器有什么东西,因为在我的同事的盒子里,在我克隆的内核树中,同样的命令立即返回

$ time __git_ps1
((v2.6.33.4))
real    0m0.039s
user    0m0.008s
sys 0m0.016s
Run Code Online (Sandbox Code Playgroud)

添加hdparm输出:

$ sudo hdparm -tT /dev/sda4

/dev/sda4:
 Timing cached reads:   1542 MB in  2.00 seconds = 772.35 MB/sec
 Timing buffered disk reads:  110 MB in  3.02 seconds …
Run Code Online (Sandbox Code Playgroud)

git bash

27
推荐指数
3
解决办法
5578
查看次数

git状态需要太长时间

我正在开发一个版本控制系统是SVN的项目,我想使用git.我做了一个git svn克隆,但git status工作速度非常慢(大约8分钟).存储库有大约63000个文件,其中大多数是git忽略的库.这是正常的吗?我做了git prune && git gc一个清理无法到达的对象和垃圾收集.我也做了一git repack -Adf件事,但这让事情变得更糟.它需要更长的时间(超过20分钟).

我究竟做错了什么?这是一个visual studio项目,我认为该.gitignore文件不包含正确的东西.是否有可能确切地找出从Visual Studio构建生成哪些文件以及哪些文件必须进行版本控制?

如果.gitignore文件不是问题,我怎样才能让我git status更快,对于6500个文件(大约10GB)的项目,使用git工作的速度是否正常?

git git-svn git-status

15
推荐指数
1
解决办法
7511
查看次数

在Windows XP上Git sh.exe进程分叉问题,慢?

Git对我的工作流程至关重要.我在带有3GB内存的四核机器上运行Windows XP上的MSYS Git,通常它具有响应性和灵活性.

突然出现一个问题,从Git Bash命令提示符运行任何命令需要> 30秒,包括lscd.有趣的是,从bash提示看起来喜欢ls运行得相当快,然后我可以看到输出ls,但是然后返回提示需要大约30秒.如果我切换到Windows命令提示符(通过cmd从开始菜单运行)git相关命令也需要永远,甚至只是运行.例如git status,在发生任何事情之前可能需要将近一分钟.有时这些过程根本无法完成.

请注意,我有"MSYS的Git"安装以及定期的"MSYS"对于喜欢的东西MinGWmake.

我认为问题与sh.exe位于C:\Program Files\Git\bin.当我ls从bash提示符运行时,或者当我git从Windows提示符调用时,任务管理器最多显示四个sh.exe进程的进程实例.

在这里,我等待ls返回,你可以看到任务管理器已经git.exe运行了四个实例sh.exe: 在这里,我等待ls返回,你可以看到任务管理器运行git.exe和sh.exe的四个实例

如果我ctrl-c在中间,ls我有时会得到包括以下内容的错误:

sh.exe": fork: Resource temporarily unavailable
      0 [main] sh.exe" 1624 proc_subproc: Couldn't duplicate my handle<0x6FC> fo
r pid 6052, Win32 error 5
sh.exe": fork: Resource temporarily unavailable
Run Code Online (Sandbox Code Playgroud)

或者git status:for :git status …

git bash shell windows-xp msysgit

8
推荐指数
2
解决办法
1万
查看次数

为什么cygwin这么慢

我在Ubuntu上运行一个脚本,并测试它的时间:

$ time ./merger
./merger  0.02s user 0.03s system 99% cpu 0.050 total
Run Code Online (Sandbox Code Playgroud)

它花了不到1秒钟.但如果我使用cygwin:

$ time ./merger
real    3m22.407s
user    0m0.367s
sys     0m0.354s
Run Code Online (Sandbox Code Playgroud)

它花了超过3分钟.为什么会这样?我该怎么做才能提高cygwin的执行速度?

linux cygwin

8
推荐指数
1
解决办法
6847
查看次数

为什么git在我的Windows机器上运行缓慢?

只需git在命令提示符下(powershell)输入,需要2.5秒,直到它返回帮助消息.

我正在使用git for windows release,安装在C:\Program Files (x86)\Git.当我使用cygwin(通过babun)时,我收到一个错误:Hint: your prompt is very slow. Check the installed 'BLODA' software.也许这是相关的?如果是,我正在使用企业笔记本电脑,因此无法卸载防病毒软件或驱动程序软件,还有其他选择吗?

windows git cygwin posh-git

8
推荐指数
1
解决办法
6796
查看次数

Git在启动时很慢

我的电脑里有一个git的小问题,我创建了一个新的文件夹并且我启动了Git Bash,但它加载git需要很长时间,因为它会显示命令提示符,但它需要一段时间才能获得git行出现.

这有什么线索吗?

谢谢

git

6
推荐指数
2
解决办法
3129
查看次数

Git ssh.exe已停止工作

我在Windows 7,64位,并已安装msysgit以使用我的github存储库.在我的旧笔记本电脑(32位,也是Windows 7)上,git运行没有问题,但现在git bash运行缓慢(我输入一个命令,它需要几秒钟来实际显示,逐个字符).当我尝试推送更改时,它会间歇性地工作,但通常会出现一个对话框,说"ssh.exe已停止工作......".我单击取消,然后重试该命令.最终,它工作,要求我的身份验证代码.一旦进入该步骤,它就会毫无问题地推动.这就是问题的关键所在.

所以基本上,我的问题是:

  • git在大多数命令上运行缓慢,即使在执行命令之前键入它们也很慢
  • 推送时,git bas(ssh.exe)停止工作,间歇性地工作.

我重新安装了Windows,因为这个问题突然出现,并没有解决它.

ssh command-line windows-7 git-bash

6
推荐指数
1
解决办法
6332
查看次数