我喜欢git并且在OS X上经常使用它在家里.在工作中,我们在Windows上使用svn,但是一旦工具完全成熟就想要迁移到git(不仅仅是TortoiseGit,还有类似于VisualSVN提供的非常好的Visual Studio集成).但我离题了......
我最近安装msysgit我的Windows 7机器上,并使用bash所包含的版本时,它的窘况慢.而不仅仅是git操作; clear大约需要五秒钟.AAAAH!
有没有人遇到过类似的问题?
编辑:似乎 msysgit与UAC没有很好的协作,可能只是一个微小的设计疏忽,因为在XP上开发或在禁用UAC的情况下运行Vista或7; 使用Run as administrator我在OS X中看到的闪电速度的结果启动Git Bash (或者在启动Git Bash w/oa网络连接后使用7 - 请参阅@Gauthier答案).
编辑2:啊哈! 看我的回答.
几个月前我在Windows 10上安装了Git .它运作良好一段时间.但现在,它运行得如此之慢.
该git status命令需要7秒才能执行,并且git stash需要花费很多分钟来进行存储(即使没有任何东西可以存储).此外,我想指出git status即时打印结果,但我无法输入新命令几秒钟,如下图所示.
我曾尝试在网上冲浪的解决我的问题像这个,这个等,但这些都没有工作.
PS:我使用的是Windows Defender杀毒软件,它并没有让我的Bash变慢.此外,cmd需要更多时间来执行git命令,而git bash需要更长的时间来执行任何命令.
更新:我已切换到Ubuntu,因此,我目前不使用Windows.所以,我无法检查是否有任何解决方案适合我.我接受@pschild提供的答案,因为它拥有最多的赞成票,似乎对许多人有用.
这是我目前的PS1:
export PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
Run Code Online (Sandbox Code Playgroud)
如何以不同颜色显示当前分支?
在我的Windows机器git stash上每次调用都有大约3.5秒的开销,这为我的git commit hook添加了大约7秒.
linux(同一台机器)下的相同命令大约需要0.01秒.性能问题也适用于空存储库.
core.fscache 被设置为 truecore.preloadindex 被设置为 truegc.auto 被设置为 256运行 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) 我每天都在做很多小项目,需要经常切换.
从SourceTree中的"Tab"切换非常慢.有时长达15秒.我该如何改善这种行为?

我们在Windows Server 2012上的Jenkins安装上遇到了缓慢的git fetch命令.我已经尝试了这些线程中提到的所有解决方案:
Hudson git命令*令人难以置信*慢(使用PuTTY中的plink.exe并设置GIT_SSH使用它)
Jenkins挂在"从原点获取上游更改"(更改Jenkins以使用cmd\git.exe而不是bin\git.exe)
任何人都可以通过永久修复找到解决方案吗?
Jenkins的控制台输出日志:
由远程主机启动
在工作区F:\ Jenkins\jobs\xxx\workspace中构建主服务器
> git.exe rev-parse --is-inside-work-tree #timeout = 10
从远程Git存储库中获取更改
> git.exe config remote.origin.url xhttp:// scm/git/xxx #timeout = 10
从xhttp:// scm/git/xxx获取上游更改
> git.exe --version #timeout = 10
使用.gitcredentials设置凭据
> git.exe config --local credential.helper store --file = \"C:\ Users\APP_JE~1\AppData\Local\Temp\git7476037793811743133.credentials \"#timeout = 10
> git.exe -c core.askpass = true fetch --tags --progress xhttp:// scm/git/xxx + refs/heads/:refs/remotes/origin /
问题在这里:上述命令可能需要30秒到120秒.在本地开发机器上需要几秒钟.
> git.exe config --local --remove-section credential #timetime = 10
版本信息:
詹金斯:1.608(最新) …
我正在开发一个版本控制系统是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工作的速度是否正常?
我可以使用什么shell命令,使用完整目录路径,确定给定目录是否是git存储库?具体来说,我希望能够在不在目录中的情况下完成此操作,而无需cd进入它.我还希望能够使用一个返回简单"true"或"false"的命令(就像rev-parse --is-inside-work-tree那样),但它不是一个要求.
Git对我的工作流程至关重要.我在带有3GB内存的四核机器上运行Windows XP上的MSYS Git,通常它具有响应性和灵活性.
突然出现一个问题,从Git Bash命令提示符运行任何命令需要> 30秒,包括ls或cd.有趣的是,从bash提示看起来喜欢ls运行得相当快,然后我可以看到输出ls,但是然后返回提示需要大约30秒.如果我切换到Windows命令提示符(通过cmd从开始菜单运行)git相关命令也需要永远,甚至只是运行.例如git status,在发生任何事情之前可能需要将近一分钟.有时这些过程根本无法完成.
请注意,我有"MSYS的Git"安装以及定期的"MSYS"对于喜欢的东西MinGW和make.
我认为问题与sh.exe位于C:\Program Files\Git\bin.当我ls从bash提示符运行时,或者当我git从Windows提示符调用时,任务管理器最多显示四个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在命令提示符下(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.也许这是相关的?如果是,我正在使用企业笔记本电脑,因此无法卸载防病毒软件或驱动程序软件,还有其他选择吗?
git ×10
bash ×3
git-bash ×2
msysgit ×2
windows ×2
cygwin ×1
git-fetch ×1
git-stash ×1
git-status ×1
git-svn ×1
jenkins ×1
linux ×1
mingw-w64 ×1
mintty ×1
performance ×1
posh-git ×1
repository ×1
shell ×1
ssh ×1
windows-10 ×1
windows-7 ×1
windows-xp ×1