2010-05-18 4 views
34

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

ответ

43

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

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) 

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

EDIT: Забыл добавить, как это сделать, используя Powershell.

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

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

+0

Бонусные баллы за добавление функций git + псевдонимов в автономный скрипт и получение их от вашего профиль. – Goyuix

+0

http://technet.microsoft.com/library/hh849938.aspx#sectionSection8 для онлайн-примеров :) – Crisfole

+0

млн. Upvotes – thedanotto

6

Я не знаю PowerShell, но вы можете setup aliases directly in Git.

+0

Приведенная выше ссылка не работает для меня. эта ссылка предоставляет аналогичную информацию https://git.wiki.kernel.org/articles/a/l/i/Aliases.html –

2

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

Затем положить в profile.ps1 линии, как это:

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

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

Создать профиль 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" 

Update:

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

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 
+0

Что делает & do? –

+0

@MattW Оператор амперсанда заставляет PowerShell выполнять следующие команды в качестве команды (CMD).Это может не всегда быть обязательным, но я обнаружил, что он избегает любых непреднамеренных эффектов, которые могут возникнуть из-за неправильной оценки аргументов, введенных в конце команды ($ args). –

4

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

+0

Спасибо за это! Очень полезно для меня. – tomd

Смежные вопросы