Get the name of the current git branch with PowerShell
I would like to be able to do git commands from a PowerShell script which is not located in the same folder as my git repo.
First I want to check the current branch, and if it's not master try to checkout master and pull master.
What I've done so far:
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
From the documentation here and the answers to this question.
$gitRepo
contains the path of the folder containing the git repo.
I get the error:
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
EDIT: New problem after the proposition of @4c74356b41 (using Join-Path
): I don't have any error a popup opens and close really fast and then my powershell script is stuck, as if it was waiting for the git-cmd.exe to close. But I can't see the windows of the cmd git and can't close it.
CD Your repository folder
$branch= &git rev-parse --abbrev-ref HEAD
from Show just the current branch in Git
尝试加入路径
$gitRepo = Join-Path $currentPath ".." -Resolve
Use psget to install the posh-git plugin that shows you the current branch. If you have the latest powershell, chances are that psget is already installed. If you dont have it then get it by using this command.
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
To install posh-git use the command:
Install-Module posh-git
链接地址: http://www.djcxy.com/p/19512.html
上一篇: 更改特定提交的提交消息