Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>@Paul-</p> <p>My PowerShell profile for Git is based off of a script I found here:</p> <p><a href="http://techblogging.wordpress.com/2008/10/12/displaying-git-branch-on-your-powershell-prompt/" rel="noreferrer">http://techblogging.wordpress.com/2008/10/12/displaying-git-branch-on-your-powershell-prompt/</a></p> <p>I've modified it a bit to display the directory path and a bit of formatting. It also sets the path to my Git bin location since I use PortableGit.</p> <pre><code># General variables $pathToPortableGit = "D:\shared_tools\tools\PortableGit" $scripts = "D:\shared_tools\scripts" # Add Git executables to the mix. [System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";" + (Join-Path $pathToPortableGit "\bin") + ";" + $scripts, "Process") # Setup Home so that Git doesn't freak out. [System.Environment]::SetEnvironmentVariable("HOME", (Join-Path $Env:HomeDrive $Env:HomePath), "Process") $Global:CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent() $UserType = "User" $CurrentUser.Groups | foreach { if ($_.value -eq "S-1-5-32-544") { $UserType = "Admin" } } function prompt { # Fun stuff if using the standard PowerShell prompt; not useful for Console2. # This, and the variables above, could be commented out. if($UserType -eq "Admin") { $host.UI.RawUI.WindowTitle = "" + $(get-location) + " : Admin" $host.UI.RawUI.ForegroundColor = "white" } else { $host.ui.rawui.WindowTitle = $(get-location) } Write-Host("") $status_string = "" $symbolicref = git symbolic-ref HEAD if($symbolicref -ne $NULL) { $status_string += "GIT [" + $symbolicref.substring($symbolicref.LastIndexOf("/") +1) + "] " $differences = (git diff-index --name-status HEAD) $git_update_count = [regex]::matches($differences, "M`t").count $git_create_count = [regex]::matches($differences, "A`t").count $git_delete_count = [regex]::matches($differences, "D`t").count $status_string += "c:" + $git_create_count + " u:" + $git_update_count + " d:" + $git_delete_count + " | " } else { $status_string = "PS " } if ($status_string.StartsWith("GIT")) { Write-Host ($status_string + $(get-location) + "&gt;") -nonewline -foregroundcolor yellow } else { Write-Host ($status_string + $(get-location) + "&gt;") -nonewline -foregroundcolor green } return " " } </code></pre> <p>So far, this has worked really well. While in a repo, the prompt happily looks like:</p> <p>GIT [master] c:0 u:1 d:0 | J:\Projects\forks\fluent-nhibernate></p> <p>*NOTE: Updated with suggestions from Jakub Narębski. </p> <ul> <li>Removed git branch/git status calls. </li> <li>Addressed an issue where 'git config --global' would - fail because $HOME was not set.</li> <li>Addressed an issue where browsing to a directory that didn't have the .git directory would cause the formatting to revert to the PS prompt.</li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload