git命令找不到并且找不到ssh-agent。

82
今天我在GitHub上发现有一个仓库需要更新,尝试使用fetch命令进行更新,但一开始就失败了。启动Git Shell(来自GitHub for Windows)时,出现了两个警告消息:

警告:无法找到git命令。请创建别名或将其添加到您的PATH。

警告:未找到ssh-agent。

当我尝试输入"$ git fetch origin"时,出现了以下错误信息:

未将“$”识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,或包括路径, 并验证路径是否正确,然后重试。

我也尝试省略了$符号,但是没有改变任何东西。

我不知道发生了什么事情,上次我使用Shell时(本月初),它没有出现这种情况。我已经尝试将git.exe的路径添加到PATH环境变量中,但是没有成功-似乎没有任何变化。我添加路径后也没有重新启动电脑,这是问题所在吗?我还从未设置过Git使用SSH。


似乎您没有安装git或者它不在您的路径中。您是否打开了正确的shell?请查看您的路径并验证git.exe目录是否存在于列表中。 - William Seiti Mizuta
@WilliamSeitiMizuta:Github for Windows自带便携式的最小版本msysgit,因此应该可以直接使用。
Seabody:重新安装应该可以解决您的问题。只需从计算机中卸载Github for Windows,然后重新安装(从github下载最新版本以确保)。
- Nevik Rehnel
@NevikRehnel:我不知道这个。所以,如果Seabody重新安装,它应该可以工作。 - William Seiti Mizuta
Seabody,我认为你不需要重新安装。下面有@Kirk的答案,我认为应该接受。 :) - Metagrapher
我不确定SO的政策(我并不经常使用该网站) - 我是否可以接受他的答案,考虑到它既没有被发布也不是我解决问题的方式?或者社区共识认为这是正确的答案足以让我接受它?我知道我可以物理上接受它,但我真的被允许吗? - Seabody
显示剩余6条评论
9个回答

158

看起来你最近更新了GitHub应用程序,导致Git Shell现在无法使用。

简短版本

修复方法:

  • 关闭 Git Shell
  • 打开GitHub并等待它完成一些后续安装操作
  • 重新打开Git Shell,这样问题就解决了。

详细版本

我刚遇到了同样的问题,为了确保我理解正确,你刚刚执行了以下步骤:

  • 打开Git Shell
  • 提示要更新GitHub
  • 更新后,Git Shell被打开

现在出现了错误:

git 命令未找到。请创建别名或将其添加到您的 PATH 中。

警告:找不到 ssh-agent。

如果是这种情况,请执行以下步骤:

  • 关闭 Git Shell
  • 现在打开GitHub应用程序(而不是Git Shell

此时会显示以下内容(不确定确切的版本):

GitHub 正在提取 git..

等待它完成这个过程,然后再打开Git Shell,问题就解决了。至少对我有效。


谢谢,解决方案很好很容易! - laike9m
1
刚好在2013年12月5日发生了跟帖中描述的情况,所以显然这个故障仍未修复。我们中的一些人主要使用shell,因此可能需要一段时间才能发现这个问题。您的步骤解决了这个问题。 - Carl
请问我应该如何更新GIT?我并没有真正使用它,它会自动更新吗?有点毛骨悚然... - Tomáš Zato
太棒了。刚刚打开GitHub,收到了GitHub正在提取git的消息。后来打开git shell,问题解决了。 - manu
1
只需要确认这个解决方案在2016年8月17日仍然可行。问题出在posh git的powershell版本上。 - Polyducks
显示剩余3条评论

10
如果您不想再次重新安装GitHub或GitShell,或者您根本不使用该服务,则可以自己解决问题。基本上,您只需要将git.exe的目录路径添加到Windows的PATH环境变量中即可。对于我来说,我需要添加路径“C:\Program Files (x86)\Git\bin”。当然,您可能已经在不同的目录中安装了Git,因此您需要找出它的位置。执行所有这些操作的说明可以在这里找到:http://thepracticalsysadmin.com/setting-up-git-in-windows/

8

系统 > 高级系统设置 > 高级选项卡 > 环境变量(在底部)。

在系统变量中(下半部分框,滚动到Path部分并编辑。 假设您的git安装在默认位置,请将以下内容添加到当前路径的末尾:

;C:\Program Files (x86)\Git\cmd;

完成。


6

我通过打开Github桌面应用程序并点击设置->选项解决了我的问题。 我的默认shell选择为PowerShell(突然停止工作)。 我选择了Git Bash并保存了它,然后再次打开设置->选项,选择了PowerShell。 接下来我再次打开了GitShell,是的! 它又开始工作了。


这个方法有效,但是我必须先在“设置”中选择“在Git Shell中打开”,然后才能通过开始菜单上的“Git Shell”快捷方式正常运行。 - Luciano

5

简短版:

添加一个用户%path%变量,值为%localappdata%\GitHub\PORTAB~1\bin

详细版:

我无法使用Kirk的答案来解决Github自身问题。

你要找的文件是git.exe,Windows GitHub GUI会安装到本地用户应用程序目录中,这使得它很难找到,例如我的路径是C:\Users\andy_000\AppData\Local\GitHub\PortableGit_ed44d00daa128db527396557813e7b68709ed0e2\bin\git.exe

为了让命令窗口中只需输入git即可找到git.exe,需要将此目录添加到Windows环境路径中。

我发现最好的解决方案是打开系统环境变量(系统 -> 高级 -> 环境变量),然后添加一个新的用户变量(顶部框,而不是底部的系统变量),名为Path,并将其值设置为%localappdata%\GitHub\PORTAB~1\bin

这意味着系统%path%变量具有github bin目录的完整用户配置文件路径,就像示例中一样。

直接将%appdata%%userprofile%引用附加到系统%path%中是行不通的,因为在设置系统变量时这些变量是不可用的,所以上述解决方案设置了一个用户%path%变量,它允许调用%localappdata%等,自动附加到系统%path%中,从而实现所需效果。


4

按照以下简单步骤操作:

  1. 打开 gitshell,更新后关闭。
  2. 打开 github 而不是 gitshell,它将自动提取文件(也可以更新)。
  3. 再次打开 gitshell

此时你会发现错误已经解决了。希望这对你也有所帮助。


2

我在安装最新的github程序后在Windows7上遇到了这个问题。我甚至关闭了所有功能我的杀毒软件 :)

我的解决方案是以管理员身份打开程序powershell ise(从菜单中),并运行以下命令:

Set-ExecutionPolicy Unrestricted

你会得到一个带有问题的对话框,我点击了“是”。然后关闭了所有窗口,并重新运行Github Shell,没有任何问题。


0

我的简单解决方案(适用于GitHub桌面版用户):

  1. 创建一个批处理文件git.bat

@echo off

%LocalAppData%\GitHub\Portab~1\cmd\git.exe %*

  1. 将其移动到C:\Windows\文件夹中。

就这样!!完成了!!

注意:您还可以使用git.bat代替直接使用git.exe。对于需要显式指定git可执行文件的软件(例如Android Studio),这将非常有用。


-1

另一个选项是更改默认 shell。

转到“工具” -> “选项”,并将默认 shell 从“PowerShell”更改为“Git Bash”或其他内容。


1
这确实有效。对我来说,我从PowerShell改为Git Bash,然后又改回PowerShell。 - slacker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接