使用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