如何在不将控制权交给交互式 git 控制台的情况下执行 git 命令?

如何在不将控制权交给交互式 git 控制台的情况下执行 git 命令?

我是 Git 新手,这是我第一次使用它。

我安装了它,在我的“程序文件”文件夹中有两个可执行文件:

C:\Program Files\Git\git-bash.exe
C:\Program Files\Git\git-cmd.exe

为了确认一切正常,我设法使用将存储库克隆到本地文件夹git-cmd,方法是直接在文件资源管理器中执行它,然后在新的 cmd 窗口中执行:

cd "c:\temp"
git clone https://github.com/SomeName/SomeRepo

当然,我想在 Windows 终端的 PowerShell 环境中执行此操作。我尝试过:

. "C:\Program Files\Git\git-cmd.exe" clone "https://github.com/SomeName/SomeRepo"

所发生的一切是一些 CMD 窗口闪烁、关闭,然后我的 PowerShell 提示符被替换为看起来像 CMD 样式的提示符。

我希望留在我的 powershell 环境中并简单地执行一个“Git”命令,将 repo 克隆到当前目录。

我也尝试过这个git-bash,这会打开它自己的窗口:

.  "C:\Program Files\Git\git-bash.exe" clone https://github.com/SomeName/SomeRepo

我尝试使用 comd 标志,/cgit-cmd没有成功:

. "C:\Program Files\Git\git-cmd.exe" /c clone "https://github.com/SomeName/SomeRepo"

我没有想到这么晚还会掉进兔子洞,请帮忙。

答案1

这些可执行文件都不是 Git。git.exe位于bin文件夹中。

git-bash.exe是一个实用程序来启动Git 重击,一个最小的 UNIX-y 环境,其中的 Bash shell 预先配置为使用 Git,并在提示符中使用制表符补全和分支名称等等。

git-cmd.exe有点类似,但会启动标准 Windows 命令提示符。这很有用,因为您可以决定不使用git.exe%PATH%从而使这些特殊的 shell 启动器成为您的唯一选择。(始终可以使用完整路径。)

如果你在安装时决定安装 Git %PATH%,则无需担心它在哪里git.exe。只需使用 Git 命令即可。

Plaingit.exe也适用于 PowerShell。Posh-Git 是不是必需的。

答案2

为了在 PowerShell 中使用 Git,您需要安装 posh-git。以下选项来自 A1.8 附录 A:其他环境中的 Git - PowerShell 中的 Git

选项 1 - 通过 Chocolatey 安装 posh-git

选项 2 - 从 PowerShell 库安装

如果您至少安装了带有 PackageManagement 的 PowerShell 5 或 PowerShell 4,则可以使用包管理器为您安装 posh-git。

  • ExecutionPolicy为所有用户设置的值,RemoteSigned使用下一个命令:

  • > Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force

  • > Install-Module posh-git -Scope CurrentUser -Force

  • > Import-Module posh-git

  • > Add-PoshGitToProfile -AllHosts

选项 3 - 从源代码安装

  • ExecutionPolicy为所有用户设置的值,RemoteSigned使用下一个命令:

  • > Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force

  • 从以下网址下载 posh-git 版本 https://github.com/dahlbyk/posh-git/releases,并解压。然后使用 posh-git.psd1 文件的完整路径导入模块:

  • > Import-Module <path-to-uncompress-folder>\src\posh-git.psd1

  • > Add-PoshGitToProfile -AllHosts

  • 这会将适当的行添加到您的 profile.ps1 文件中,并且下次打开 PowerShell 时 posh-git 将处于活动状态。

相关内容