如何为Git命令添加PowerShell别名

5

我已经厌倦了每天都要做 git addgit commit。我知道在Linux中,你可以使用一行命令编辑你的bashrc文件。但由于我使用的是Windows,我很难为其创建一个别名。

 Fucntion gcd {
    Insert("git commit")
}
Set-Alias gcm gcd

但是我遇到了一个错误

Set-Alias : Alias is not writeable because alias gcm is read-only or constant and cannot be written to.

我也尝试过不使用插入关键字,甚至没有使用函数,仍然出现错误。


gcm 已经是 PowerShell 的 Get-Command 别名,因此您无法覆盖它。 - j-hap
3个回答

3
您不需要依赖于特定的shell来创建别名,因为Git已经支持它们了:参考链接。如果您不想输入每个Git命令的完整文本,可以使用git config轻松设置每个命令的别名。Git别名是在.gitconfig文件中定义的,可以全局定义或针对特定存储库定义。在您的情况下,您可以通过以下方式创建git commit的全局别名:
git config --global alias.gcd commit

谢谢,它真的帮了我。由于 Posh-git 没有起作用,我不知道为什么。 - Abdul raheem
而且,一旦我运行了这个命令,我就不需要在每个终端会话上都运行它,对吧?它将是永久的,对吧? - Abdul raheem
是的——如果您在Git的全局.gitconfig文件中设置它,它将在当前用户的所有会话中都可用。 - Enrico Campidoglio

1

为什么不试着使用 posh-git 呢?

posh-git 是一个 PowerShell 模块,通过提供 Git 状态摘要信息,可以将 Git 和 PowerShell 集成,例如在 PowerShell 提示符中显示:

C:\Users\Keith\GitHub\posh-git [main ≡ +0 ~1 -0 | +0 ~1 -0 !]>

posh-git 还为常见的 git 命令、分支名称、路径等提供了 Tab 键补全支持。例如,使用 posh-git 后,PowerShell 可以通过输入“git ch”并按下 Tab 键来补全 git checkout 命令。如果继续按 Tab 键,则会循环显示其他命令匹配项,如 cherry 和 cherry-pick。你也可以补全远程名称和分支名称,例如:git pull 或 ma 补全为 git pull origin main。


可以安装 posh-git 和 oh-my-posh 吗?因为我已经在 PowerShell 上安装了 oh-my-posh...我的意思是说,我可以同时拥有两者吗? - Abdul raheem
是的,我都有。在我的Windows 10上,请小心管理您的$Profile - JPBlanc

0

你可以创建一个 PowerShell 配置文件,当打开 PowerShell 时自动运行。 首先打开 PowerShell 并创建 PowerShell 配置文件(如果你还没有):

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

这个命令将在“文档”目录下创建一个名为WindowsPowerShell的文件夹,在该文件夹中创建一个名为Microsoft.PowerShell_profile.ps1的文件。

如果你想知道Microsoft.PowerShell_profile.ps1的完整路径,请输入以下命令:

$PROFILE

使用以下命令从 PowerShell 打开它:

powershell_ise.exe $PROFILE

然后写入所有你想要别名的命令,例如:

function gn{git init}
# @args you can pass multi arguments for example
# ga fileName1 fileName2 
function add{git add @args}
function commit { git commit -m @args }
function gac{git add .;git commit -m @args}
function gpm{git push origin master}
function pull{git pull origin master}
function gl{git log}
function glo{git log --oneline}
function gch{git checkout @args}

# @args is optional to add argument
function gb{git branch @args}
function gs{git status}
function gd{git diff}

保存并关闭PowerShell,再次打开它,并通过函数名称调用别名命令,例如初始化git存储库,请输入以下命令:

gn

要添加文件,请输入以下命令:

add fileName1

查看GIF图像 aliases git commands from PowerShell

要显示别名命令的内容,请输入以下命令:

Get-Content $PROFILE


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接