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