Github桌面版在哪里安装Git的命令行版本?

51
根据https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git,安装程序包含Git的命令行版本和GUI版本。它还能良好地与Powershell配合使用,并设置了可靠的凭证缓存和合理的CRLF设置。
当我从https://desktop.github.com/下载最新版并启动后,它会立即运行,而不提供安装命令行版本的选项。我在cmd中输入git进行检查,但命令无法识别。
Github Desktop是否真正安装了Git命令行,请问是否可以强制安装命令行版本?
更新:我找到了安装程序,但无法从Powershell访问它。

2
请注意,GitHub团队不建议使用嵌入式git可执行文件来代替从https://gitforwindows.org/安装。 原因在这里:https://github.com/desktop/desktop/issues/3708#issuecomment-354665183 - aaronsteers
9个回答

42

在Windows上,GitHub Desktop的最新版本/统一版本中,git存储在此处:

C:\Users\UserName\AppData\Local\GitHubDesktop\app-1.0.5\resources\app\git\cmd\git.exe

应该有一个带有猫的GIT BASH图标,你可以在其中运行git命令。尝试使用https://git-for-windows.github.io/,它非常用户友好,也许你可以在这个过程中弄清楚安装是怎么回事。 - capser

24

我是GitHub Desktop团队成员。

GitHub Desktop真的安装了Git命令行吗?如果没有,我能通过某种方式强制它这样做吗?

我们不再支持您可能想到的"Git Shell"环境,因为我们决定将资源集中于GUI体验。您可以在此处阅读有关我们决定放弃支持的讨论:https://github.com/desktop/desktop/issues/340

如果您想在Windows上获得命令行Git体验,Git for Windows是您最好的选择。


9
你应该更新你的网站。它仍然宣传 Github Desktop 会自动安装 Git。此外,选项菜单下的高级设置中有一个让你选择 shell 的选项,但实际上没有起到任何作用。 - Ryan Wilson
在 https://desktop.github.com/ 的主页底部提到了 shell 集成。该页面没有提到它不会为您安装 git,措辞暗示这是唯一需要的事情。 - Ryan Wilson
如果桌面工具不再提供SSH密钥,则有关SSH密钥的信息也已过时。请参考https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent。 - Will Ayd
7
已经过去了3年,官方文档仍然提供错误信息。请查看https://github.com/git-guides/install-git#install-git-using-github-desktop以使用GitHub桌面版安装Git。 - Alexandru Cristian
3
又是一年,我偶然读到这篇文章,感到非常惊讶。 - GreenAsJade
显示剩余2条评论

11

编辑: 以下回答已过时。 请参见Brendan Forster的答案,了解原因和提议的备选方案。

GithubDesktop安装了一个带有Git shell的桌面应用程序。它似乎位于与其RIA应用程序相同的目录中。

如果您使用GitHubDesktop安装程序创建了快捷方式,则可以检索git shell位置。


我误操作地给了负评。这是正确的答案,当stackoverflow延迟过后我会修正它。 - user310291

3
事实上,最新版本的Github桌面版(我使用的是2.9.6)在Windows 10上不再支持以下功能:
  • 使用shell命令提示符直接输入命令行
  • 将被丢弃的文件放入Windows回收站。例如,如果您想恢复已丢弃的存储更改,这种情况就有点糟糕了。
下面是一个技巧,可以在Windows命令提示符上启用与Github桌面版无缝协作的Git,前提是Git已经与GitHub桌面版一起安装。此技巧受到此主题的启发'git' is not recognized as an internal or external command,但适用于GitHub桌面版的情况:
  1. Locate the file git.exe, from the latest release of GitHub Desktop. In my case:

    C:\Users\USERNAME\AppData\Local\GitHubDesktop\app-2.9.6\resources\app\git\cmd
    
  2. Find the location of the GitHub bin folder. In my case:

    C:\Users\USERNAME\AppData\Local\GitHubDesktop\bin
    
  3. Copy these two paths—with no slash at the end—and add them to the User Environment Variables of Windows 10, so they become broadly accessible in the Command Prompt. For this:

  4. Search "Environment Variables" in Windows settings.

  5. In system properties click "Environment Variables..." button

  6. In User variables, click "New"

  7. In Edit Environment Variables, paste both paths.

现在,与GitHub桌面版相关的Git.exe已经可以在Windows命令提示符中使用。您只需在命令提示符中导航到存储库所在的文件夹并开始执行git命令即可(您可以首先键入命令git以验证其是否有效;它会列出所有可用命令)。
即使打开了GitHub桌面版以便处理简单的事情,此技巧也有效。

3
如果您正在寻找使用 PowerShell 而不是 CMD 提示符的 GIT 命令行版本,就像我一样,那么这篇文章可能会帮到您。
Github Desktop 从 Chocolate-Covered Yaks(最新版本为 3.3.4.0)更改为使用 Electron 重新设计的新本机桌面应用程序。 (它使用了 git 版本 2.11.0.windows.3)
不幸的是,新的 Github Desktop 还没有包含右键单击启动 PowerShell 的选项,就像旧版那样。
因此,如果您被困在旧版的 Github Desktop Chocolate-Covered Yaks 中,因为您喜欢 PowerShell 选项,并且您想升级到更新版的 GIT,则应该查找类似于以下这样的文件夹:
例如: C:\Users{Your UserName}\AppData\Local\GitHub\PortableGit_{hex code which changes}\cmd (示例适用于 Windows 7。对于 Windows 10,我认为文件夹名称是 \bin 而不是 \cmd)
该文件夹包含 git.exe。
注意,这是与新版 Github Desktop 使用的不同的文件夹位置,这就是为什么我添加这个额外答案的原因。
我以为我只需将 git.exe 替换为最新版本的 git,但当我这样做时,我得到了
Git version "error launching git: The system cannot find the path specified."。
最后对我起作用的方法是简单地从 PortableGit_{hex code which changes}\cmd 文件夹中删除 git.exe。
由于我已经单独安装了最新版本的 Git,它似乎会默认返回到那里,然后我就得到了
Git version git version 2.17.0.windows.1
请注意,如果您删除了 git.exe,则 Github Desktop v3.3.4.0 将停止工作,您只能使用它来打开 shell。对我来说这很完美,因为我仅在除打开 shell 之外的其他任何情况下都使用新版的 Github Desktop。
我还想更改编辑器。 仅安装新版本的 git 并选择 notepad 作为编辑器是不够的。 一些旧版 Github Desktop 打开的 PowerShell 仍然将其 core.editor 设置为 vim。
我通过在 power shell 中键入以下内容来解决它:
git config core.editor "'C:\Program Files (x86)\Notepad++\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

2

前往“首选项”并选择您的Git Shell即可。在默认Shell下,您可以选择CMD、Git Bash、Powershell或自定义。


2

Git希望简化事情,因此如果您不熟悉命令行界面,则可以尝试使用Git桌面版。如果您想同时使用命令行和桌面GUI,则可以从此URL安装单独的Git:https://git-scm.com/


我知道如何安装git命令行,但根据文档,如果我安装Github桌面版,就不必费那么大劲了,因为它会为我安装命令行,包括Powershell。但就我所见,这似乎并不正确。 - user310291
如上所述,GitHub团队不建议使用嵌入式的git可执行文件来替代从 https://gitforwindows.org/ 安装git。 原因请见:https://github.com/desktop/desktop/issues/3708#issuecomment-354665183 - aaronsteers

1
FWIW,回到2018年,有一篇帖子解释了为什么GitHub for Windows桌面工具团队不鼓励/支持使用其包含的git可执行文件,而是建议直接安装git:
在 GitHub for Windows 的早期阶段,我们做出了一个有意识的决定,即除非绝对必要,否则不会干扰您现有的环境,而这就是其中之一。虽然这似乎很方便,但实际上它引入了许多问题:
- 我们嵌入的 Git 版本的路径与 Desktop 的特定版本相关联 - 每次应用更新时,此路径都会更改,可能导致硬编码到该路径(如环境变量)的任何内容出现故障。 - 我们在 Desktop 中使用的嵌入式 Git 版本不支持终端功能,如颜色显示、分页和开发人员熟悉的 UNIX 工具链,因为我们想节省空间,并且我们不需要它们在应用中。 - Desktop 使用 GIT_ASKPASS 环境变量来管理自己的凭据(详见此处),仅将 Git 添加到您的 PATH 不会使凭据在终端或应用程序中工作。 - 我们不鼓励依赖我们的 Git 版本,因为它从未得到官方支持,我们嵌入 Git 的方式也可能会发生变化。一个例子是 VSCode。早期他们方便起见依赖于 GitHub for Windows 中找到的 Git,这还可以正常工作,直到您还安装了 Electron Desktop 版本(我们支持并排使用这些版本),后者有自己的 CLI 集成。这种组合破坏了 VSCode,因为他们没有正确管理 PATH 环境变量,它将不断生成 Desktop UI。我不得不让他们在禁用 GitHub 版本 Git 查找 microsoft/vscode#35965中删除此代码。
我们建议安装Git for Windows并确保在其安装程序中选中“添加到您的 PATH”选项,因为 Desktop 和 VSCode 与之很好地互操作。

(用户 shiftkey)

来源: https://github.com/desktop/desktop/issues/3708#issuecomment-354665183


谢谢您的回复,我已经注意到您在第一条中提到的版本控制,并且想知道如何处理它。答案显然是不要处理它。直接安装Git for Windows即可。我只希望它不会覆盖已安装的桌面版... - captain puget

0

在Linux上,您可以使用find命令找到github-desktop资源目录:

sudo find / -name "github-desktop" -type d

文件夹的路径可能因安装GitHub Desktop的方式而异,但应输出类似于以下路径:/var/lib/flatpak/app/io.github.shiftey.Desktop/x86_64/stable/6492e8caf515d40c94665dee045332a1396962fd0499b676a9c5a24c164b733e/files/github-desktop

从该路径,您可以通过将/resources/app/git/bin附加到路径末尾来遍历嵌入式git bin目录,如下所示:/var/lib/flatpak/app/io.github.shiftey.Desktop/x86_64/stable/6492e8caf515d40c94665dee045332a1396962fd0499b676a9c5a24c164b733e/files/github-desktop/resources/app/git/bin


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