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

问题描述 投票:0回答:9

我了解如何在 PowerShell 中为 cmdlet 创建别名,但我想在 PowerShell 中为

git status
等创建别名作为
gs
,以及
git pull origin master
作为
gpm
。有人能指出我正确的方向吗?

git powershell
9个回答
84
投票

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

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 为带有参数、管道等的命令创建别名的示例(最后一个适用于此处)。


82
投票

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

创建 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

Aligns with mac aliases commands:

function Get-GitCheckout { & git checkout $args }
New-Alias -Name gco -Value Get-GitCheckout
function Get-GitBranch { & git branch $args }
New-Alias -Name gb -Value Get-GitBranch
function Get-GitPull { & git pull $args }
New-Alias -Name gl -Value Get-GitPull

function Get-GitPush { & git pull $args }
New-Alias -Name gp -Value Get-GitPush

function Get-GitCheckoutPreviousBranch { & git checkout - $args}
New-Alias -Name gcop -Value Get-GitCheckoutPreviousBranch

function Open-AddAliases { code $PROFILE }
New-Alias -Name addAliases -Value Open-AddAliases

13
投票

我创建了 posh-git-alias,您可以将其添加到 PowerShell

$PROFILE


11
投票

我不懂 PowerShell,但您可以 直接在 Git 中设置别名


4
投票

您需要创建一个 profile.ps1 文件,将其放入我的文档中调用 WindowsPowerShell 的文件夹中

然后在 profile.ps1 中放入如下一行:

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

2
投票

您可以创建打开 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 图片

要显示别名命令的内容,请编写以下命令:

Get-Content $PROFILE


0
投票

如果您使用 PowerShell,那么您需要添加函数,包括要为其创建别名的命令。

比如你想为

git fetch -all
创建一个别名,那么你需要在文件
Microsoft.PowerShell_profile
中添加以下内容:

function gfa{git fetch --all}

然后,如果您在

PowerShell
WindowsTerminal 中运行 gfa,那么
git fetch --all
将被执行。

注意:要在记事本中打开

Microsoft.PowerShell_profile
文件,请在
PowerShell
WindowsTerminal 中运行 notepad $profile。或者您导航至
C:\Users\YOUR_USER\Documents\WindowsPowerShell
获取文件。

以下是常用功能列表:


function gs{git status}
function ga{git add .}
function gfa{git fetch --all}

function grman{git rebase -i main}
function grmas{git rebase -i master}
function grdev{git rebase -i develop}

function gitc{ git commit -m @args }
function gac{git add .;git commit -m @args}
function pushmas{git push origin master}
function pushman{git push origin main}
function pushdev{git push origin develop}

function pullman{git pull origin main}
function pullmas{git pull origin main}
function pulldev{git pull origin develop}

function pull{git pull origin master}
function gl{git log}
function glo{git log --oneline}
function gch{git checkout @args}
function gcn{git checkout -b @args}

function gman{git checkout main}
function gmas{git checkout master}
function gdev{git checkout develop}

function gb{git branch @args}
function gs{git status}
function gd{git diff}

这个 GitHub Gist 是我自己的链接

Microsoft.PowerShell_profile


0
投票

也许这个问题已经晚了,但对于仍然有类似问题的人,请安装这个 powershell 模块

PS> Install-Module -Name git-aliases

根据它的描述,

一个 PowerShell 模块,提供 Oh My Zsh 的 git 插件的部分 Git 别名。


-1
投票

在 Windows 上,我在位于用户主文件夹中的

.gitconfig
文件中使用以下内容:

[alias]
  co = checkout
  ci = commit
  st = status
  sw = switch
  d  = diff
  hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
  type = cat-file -t
  dump = cat-file -p
© www.soinside.com 2019 - 2024. All rights reserved.