使用PowerShell获取当前git分支的名称

我希望能够通过PowerShell脚本执行git命令,该脚本与我的git repo不在同一个文件夹中。

首先,我想检查当前分支,如果它不是主人,请尝试结帐主人并拉出主人。

到目前为止我所做的:

function Get-ScriptDirectory {
    Split-Path $script:MyInvocation.MyCommand.Path
}

$currentPath = Get-ScriptDirectory
[string]$Path_GIT = "C:Program FilesGitgit-cmd.exe"
$gitRepo = $currentPath + ".."
$nameCurrentBranch = & $Path_GIT git -C "$gitRepo" rev-parse --abbrev-ref HEAD

从这里的文档和这个问题的答案。

$gitRepo包含包含git $gitRepo的文件夹的路径。

我收到错误:

git-cmd.exe : fatal: Cannot change to 'C:UsersMyNameDocumentsProjectsMyProject
Batchs.." rev-parse --abbrev-ref HEAD': Invalid argument
At C:UsersMyNameDocumentsProjectsMyProjectBatchsPublish.ps1:64 char:22
+ ... entBranch = & $Path_GIT git -C "$gitRepo" rev-parse --abbrev-ref HEAD ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (fatal: Cannot c...nvalid argument:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

编辑: @ 4c74356b41命题(使用Join-Path )后的新问题:我没有任何错误弹出打开并关闭非常快,然后我的PowerShell脚本卡住,就好像它正在等待git-cmd。 exe关闭。 但是我看不到cmd git的窗口,无法关闭它。


CD您的存储库文件夹

$branch= &git rev-parse --abbrev-ref HEAD 

从仅显示Git中的当前分支


尝试加入路径

$gitRepo = Join-Path $currentPath ".." -Resolve

使用psget安装向您显示当前分支的posh-git插件。 如果您拥有最新的PowerShell,则可能已安装psget。 如果你没有它,那么使用这个命令来获取它。

(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex

要安装posh-git,请使用以下命令:

Install-Module posh-git
链接地址: http://www.djcxy.com/p/19511.html

上一篇: Get the name of the current git branch with PowerShell

下一篇: Find out which remote a local branch is tracking