mar*_*c_s 1 git powershell alias function
我是一名经验丰富的 C# 程序员,但到目前为止,我几乎没有涉足 PowerShell(到目前为止,我使用了另一个替代的 Windows 命令行产品)。
我正在尝试自动化一些 Git 的东西,但我遇到了一些困难,似乎找不到任何解决方案......(到目前为止,似乎也没有视频教程或博客文章有很大帮助) .
我想要做的是定义函数和别名,使我在 PowerShell 中使用 Git 更加舒适 - 是的,我知道Posh-Git,并且已经检查过它 - 但这似乎主要处理呈现PowerShell 中的漂亮 UI。
我想为我一直使用的常见 Git 命令定义“快捷方式” - 并且到目前为止已经成功定义了一些别名。
我现在正在苦苦挣扎的是:我想要git pull(以及git push)的别名,它可以“按原样”运行 - 例如只运行git pull,或者可以运行我需要的最频繁的命令使用 - git pull origin master。
我试图定义一个函数:
function invoke-gitpull { git pull $args }
Run Code Online (Sandbox Code Playgroud)
然后为此定义两个别名——一个只是“按原样”调用这个函数,一个提供两个参数——像这样:
Set-Alias gtp invoke-gitpull
Set-Alias gtpom invoke-gitpull origin master
Run Code Online (Sandbox Code Playgroud)
但不知何故,PS 不喜欢这样:-(
Set-Alias:找不到接受参数“origin”的位置参数。
+ 设置别名 gtpom invoke-gitpull origin master
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Alias], ParameterBindingException
+fullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetAliasCommand
然后我还尝试为invoke-gitpull函数定义参数- 像这样:
function invoke-gitpull ([String] $remote, [String] $branch) { git pull $remote $branch }
Run Code Online (Sandbox Code Playgroud)
认为如果我不提供参数值,git pull则将发出 - 如果我提供两个参数值 - invoke-gitpull -remote origin -branch master,git pull origin master则将被调用 - 但同样,PS 不同意我的观点:
Set-Alias : 找不到与参数名称“remote”匹配的参数。
+ Set-Alias gtpom invoke-gitpull -remote origin -branch master
+ ~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Alias], ParameterBindingException
+fullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SetAliasCommand
此外,我还尝试在函数内部使用参数:
但我又犯了同样的错误。
那么我必须如何为我的invoke-gitpull函数定义这些参数才能使其工作?我似乎在兜圈子,不完全理解我做错了什么......任何人都可以启发我吗?
别名(使用*-Alias小命令)被限制为点命令名只,不带参数。如果您希望将别名的参数作为另一个别名(例如gtp origin master),则需要将它们定义为函数:
function invoke-gitpull { git pull $args }
Set-Alias -Name gtp -Value invoke-gitpull
function gtpom { gtp origin master }
Run Code Online (Sandbox Code Playgroud)
但如果这只是私人用途,我会跳过别名,只需将它们包含在您$Profile想要的方式中:
function gtp() { & GIT.exe pull @args }
function gtpom() { gtp origin master }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |