在PowerShell中为git命令创建别名?

时间:2010-05-18 15:04:15

标签: git powershell

我理解如何在PowerShell中为cmdlet创建别名,但是我想在PowerShell中创建一个别名,比如“git status”就像“gs”和“git pull origin master”那样“gpm”任何人都可以指向我在正确的方向?

5 个答案:

答案 0 :(得分:53)

您必须先创建一个函数,其中包含您的命令。然后为该函数创建一个别名。

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的操作系统项目感兴趣,该项目旨在为git命令提供PowerShell环境。使用PS类型函数包装git命令,并提供一个新提示,显示提示中的状态和分支。

编辑:忘记添加如何使用Powershell了解如何执行此操作。

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

这将向您展示如何使用set-alias为带有参数,管道等的命令创建别名的示例(最后一个适用于此处)。

答案 1 :(得分:23)

刚刚为自己创建了一些快捷方式并希望分享:

创建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会话时,您也应该能够将参数传递给别名。 e.g:

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

答案 2 :(得分:6)

我不知道PowerShell,但你可以setup aliases directly in Git

答案 3 :(得分:5)

我创建了posh-git-alias,您可以将其添加到PowerShell #include "BST.h" BST::BST() { root = NULL; } BST::~BST() { remAll(); } bool BST::add(Node* n, int k, int x, int y) { bool success; if (n = NULL) { n = new Node(k, x, y); success = true; } else { if (k == n->getKey()) { success = false; } else { if (k < n->getKey()) { Node* leftTree = n->getLeft(); success = add(leftTree, k, x, y); n->setLeft(leftTree); } else { Node* rightTree = n->getRight(); success = add(rightTree, k, x, y); n->setRight(rightTree); } } } return success; } int BST::remAll(Node* n) { int number; if (n == NULL) { number = 0; } else { number = remAll(n->getLeft()); number += remAll(n->getRight()); delete n; number++; } return number; } Button BST::get(Node* n) { if (n != NULL) { if (!n->getUsed()) { n->setUsed(); return n->getPlay(); } else { Node* rightTree = n->getRight(); if (rightTree != NULL) { return get(rightTree); } else { Node* leftTree = n->getLeft(); if (leftTree != NULL) { return get(leftTree); } } } } } bool BST::add(int k, int x, int y) { return add(root, k, x, y); } int BST::remAll() { int number = remAll(root); root = NULL; return number; } Button BST::get() { return get(root); }

答案 4 :(得分:2)

你需要创建一个profile.ps1文件把它放在一个文件夹中调用我的文档中的WindowsPowerShell

然后在profile.ps1中添加如下行:

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