Создание псевдонимов в PowerShell для команд git?

Я прекрасно понимаю, как создавать псевдонимы в PowerShell для командлетов, но я хочу создать псевдоним в PowerShell для таких вещей, как git status как просто gs, а git pull origin master как gpm. Может кто-то указать мне верное направление?


person Richard    schedule 18.05.2010    source источник


Ответы (5)


Сначала вам нужно будет создать функцию, в которой есть ваша команда. Затем создайте псевдоним для этой функции.

PS C:\Users\jpogran\code\git\scripts> function get-gitstatus { git status }

PS C:\Users\jpogran\code\git\scripts> get-gitstatus
# On branch master
nothing to commit (working directory clean)

PS C:\Users\jpogran\code\git\scripts> Set-Alias -Name gs -Value get-gitstatus

PS C:\Users\jpogran\code\git\scripts> gs
# On branch master
nothing to commit (working directory clean)

Вас также может заинтересовать проект ОС под названием posh-git, целью которого является предоставление среды powershell для git-команды. Обертывает команды git функциями типа PS, а также предоставляет новую подсказку, которая показывает статус и ветвь в вашей подсказке.

РЕДАКТИРОВАТЬ: забыл добавить, как узнать, как это сделать с помощью Powershell.

PS C:\Users\jpogran\code\git\scripts> get-help set-alias -examples

Это покажет вам примеры (последний здесь применим) того, как использовать set-alias для создания псевдонимов для команд с параметрами, конвейерами и т. д.

person James Pogran    schedule 18.05.2010
comment
Бонусные баллы за добавление функций + псевдонимы git в отдельный скрипт и получение их из вашего профиля. - person Goyuix; 18.05.2010
comment
technet.microsoft.com/library/hh849938.aspx#sectionSection8 в Интернете. Примеры :) - person Chris Pfohl; 29.08.2014
comment
Если вы определите свою собственную функцию Get-GitStatus, как указано выше, вы перезапишете функцию Get-GitStatus posh-git, которая используется для получения структурированной информации о состоянии для создания пользовательского приглашения. - person Andrew Spencer; 09.02.2020
comment
Зачем еще один псевдоним, когда у тебя есть функция? Просто введите короткое имя функции, как это делает @alex с шикарным парнем ähh git. - person Timo; 23.10.2020

Просто создал несколько ярлыков для себя и хотел поделиться:

Создайте профиль PowerShell (если у вас его еще нет):

New-Item -Type file -Path $PROFILE -Force

Откройте его для редактирования:

notepad $PROFILE

Добавьте следующие функции и псевдонимы:

function Get-GitStatus { & git status $args }
New-Alias -Name s -Value Get-GitStatus
function Set-GitCommit { & git commit -am $args }
New-Alias -Name c -Value Set-GitCommit

Когда вы перезапустите сеанс PowerShell, вы также сможете передавать аргументы псевдонимам. например.:

c "This is a commit message"

Обновлять:

Вот еще несколько моих часто используемых сочетаний клавиш:

function Get-GitStatus { & git status -sb $args }
New-Alias -Name s -Value Get-GitStatus -Force -Option AllScope
function Get-GitCommit { & git commit -ev $args }
New-Alias -Name c -Value Get-GitCommit -Force -Option AllScope
function Get-GitAdd { & git add --all $args }
New-Alias -Name ga -Value Get-GitAdd -Force -Option AllScope
function Get-GitTree { & git log --graph --oneline --decorate $args }
New-Alias -Name t -Value Get-GitTree -Force -Option AllScope
function Get-GitPush { & git push $args }
New-Alias -Name gps -Value Get-GitPush -Force -Option AllScope
function Get-GitPull { & git pull $args }
New-Alias -Name gpl -Value Get-GitPull -Force -Option AllScope
function Get-GitFetch { & git fetch $args }
New-Alias -Name f -Value Get-GitFetch -Force -Option AllScope
function Get-GitCheckout { & git checkout $args }
New-Alias -Name co -Value Get-GitCheckout -Force -Option AllScope
function Get-GitBranch { & git branch $args }
New-Alias -Name b -Value Get-GitBranch -Force -Option AllScope
function Get-GitRemote { & git remote -v $args }
New-Alias -Name r -Value Get-GitRemote -Force -Option AllScope
person Aaron Tribou    schedule 21.04.2014
comment
Что делает &? - person Matt W; 30.03.2017
comment
@MattW Оператор амперсанда заставляет PowerShell выполнять следующие аргументы в виде команды (CMD). Это может потребоваться не всегда, но я обнаружил, что это позволяет избежать любых непреднамеренных эффектов, которые могут возникнуть из-за неправильной оценки аргументов, введенных в конце команды ($args). - person Aaron Tribou; 01.04.2017
comment
В этом случае вам больше не нужны псевдонимы. Вы можете просто назвать свою функцию, например. s, а затем вызовите его напрямую как команду. - person Daniel Werner; 08.01.2021

Я не знаю PowerShell, но вы можете настроить псевдонимы непосредственно в Git.

person nicoulaj    schedule 18.05.2010
comment
Вышеупомянутая ссылка не работала для меня. эта ссылка предоставляет аналогичную информацию git.wiki.kernel.org/articles /a/l/i/Псевдонимы.html - person Joe Simmonds; 18.04.2012

Я создал posh-git-alias, который вы можете просто добавить в свой PowerShell $PROFILE.

person Alexander Zeitler    schedule 30.05.2015
comment
Спасибо за это! Очень полезно для меня. - person tomd; 22.02.2016
comment
5 лет спустя все еще актуален. Вы должны переименовать список в шикарные функции git... - person Timo; 23.10.2020

Вам нужно создать файл profile.ps1, поместить его в папку с именем WindowsPowerShell в моих документах.

Затем поместите в profile.ps1 такую ​​строку:

set-alias wit 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\witadmin.exe'
person Alex    schedule 18.05.2010