Показать текущее имя ветки GIT в командной строке Windows

Можно ли отобразить текущее имя ветки git в командной строке Windows?

Скажем, на окнах 7 или 10.

Ответ 1

Вы не можете сделать это из командной строки Windows. Однако существует среда, которая может работать поверх вашей среды Windows.

После запуска установщика Windows Git и разрешения установки git вы можете вызвать git-bash из контекстного меню.

Call Git Bash in the system menu

По умолчанию среда git-bash показывает, в какой ветке вы находитесь.

Screenshot of the git-bash running environment

Ответ 2

Это git.bat, который я использую. Я получил ответ по следующей ссылке:

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

Сначала создайте файл git.bat в папке, затем добавьте папку в PATH и перед строкой git.exe (я предполагаю, что на вашем компьютере уже установлен git.exe). Это будет гарантировать, что каждый раз, когда вы вводите git в командной строке, новый файл git.bat будет запускаться вместо 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 
)

Ответ 3

Я использую Бабун Он предоставляет потрясающий вид командной строки для git. Он также поддерживает контекстное меню и может быть открыт из любого места при щелчке правой кнопкой мыши.

snapshot

Ответ 4

Если вы используете Windows PowerShell, вы можете переопределить стандартную функцию "Подсказка", выполнив следующую в окне PowerShell, которое вы используете. Это заставит его обнаруживать репозитории Git и перечислять ветку Git в строке приглашения:

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>

Протестировано в PowerShell версии 5.1.17763.592.

Чтобы применить это изменение приглашения во всех ваших окнах команд PowerShell, поместите эту функцию в файл с именем profile.ps1 в C:\Users\username\Documents\WindowsPowerShell. Любые окна команд PowerShell, открытые после этого, должны иметь приглашение Git в каталоге, который является частью репозитория Git.