web-dev-qa-db-fra.com

afficher le nom de la branche GIT actuelle dans l'invite de commande Windows

Est-il possible d'afficher le nom de la branche git actuelle dans l'invite de commande Windows normale?
Disons sous Windows 7 ou 10.

16
CoR

Vous ne pouvez pas le faire à partir de l'invite de commande basée sur Windows. Il existe cependant un environnement qui peut s'exécuter au-dessus de votre environnement Windows.

Après avoir exécuté le programme d'installation de Windows Git et autorisé l'installation de git , vous pouvez appeler git-bash à partir du menu contextuel.

Call Git Bash in the system menu

Par défaut, l'environnement git-bash montre dans quelle branche vous vous trouvez.

Screenshot of the git-bash running environment

8
Amr Lotfy

C'est le git.bat que j'utilise. J'ai obtenu la réponse à partir du lien suivant:

https://www.nu42.com/2016/05/display-git-branch-windows-command-Prompt.html

Tout d'abord, créez le fichier git.bat dans un dossier, puis ajoutez le dossier dans le CHEMIN et en amont de la ligne à git.exe (je suppose que le git.exe est déjà installé sur votre ordinateur). Cela garantira que chaque fois que vous tapez git dans votre ligne de commande, le nouveau git.bat sera déclenché à la place de git.exe.

@echo off
git.exe %*
set GITBRANCH=
for /f %%I in ('git.exe rev-parse --abbrev-ref HEAD 2^> NUL') do set GITBRANCH=%%I

if "%GITBRANCH%" == "" (
  Prompt $P$G 
) else (
    Prompt $P $C$E[32;7;32;47m%GITBRANCH%$E[0m$F $G 
)
7
Richard Liu

Si vous utilisez Windows PowerShell, vous pouvez remplacer la fonction "Invite" standard en exécutant la suivante dans la fenêtre PowerShell que vous utilisez. Cela lui permettra de détecter les référentiels Git et de répertorier la branche Git dans la chaîne d'invite:

Function Prompt
{
    $git_cmd = "git rev-parse --abbrev-ref HEAD"
    Invoke-Expression $git_cmd 2> $null | Tee-Object -Variable git_branch | Out-Null
    $git_branch_text = $None
    if ( $git_branch -And -Not $git_branch.StartsWith($git_cmd)) 
    {
        $git_branch_text = "[$git_branch] "
    }

    $stringBuilder = New-Object System.Text.StringBuilder
    $null = $stringBuilder.Append("PS ")
    if ($git_branch_text) { $null = $stringBuilder.Append($git_branch_text) }
    $null = $stringBuilder.Append($($executionContext.SessionState.Path.CurrentLocation))
    $null = $stringBuilder.Append($('>' * ($nestedPromptLevel + 1)))
    $null = $stringBuilder.Append(" ")
    return $stringBuilder.ToString()
}

PS C:\Users\username\Document\GitHub>
PS C:\Users\username\Document\GitHub>cd code_repository
PS [dev] C:\Users\username\Document\GitHub\code_repository>

PS [dev] C:\Users\username\Document\GitHub\code_repository>cd ..
PS C:\Users\username\Document\GitHub>

Testé sur PowerShell version 5.1.17763.592.

Pour appliquer ce changement d'invite dans toutes vos fenêtres de commandes PowerShell, placez cette fonction dans un fichier nommé profile.ps1 in C:\Users\username\Documents\WindowsPowerShell. Toutes les fenêtres de commandes PowerShell ouvertes après cela devraient avoir l'invite Git lorsqu'elles se trouvent dans un répertoire faisant partie d'un référentiel Git.

0
DocOc

J'utilise babun Il fournit une vue impressionnante en ligne de commande pour git. Il prend également en charge le menu contextuel et peut être ouvert à partir de n'importe quel emplacement lors d'un clic droit.

snapshot

0
dkb