Я опытный программист на C #, но до сих пор я только немного баловался с PowerShell (пока использовал другой альтернативный продукт командной строки Windows).
Я пытаюсь автоматизировать некоторые вещи из Git, и я столкнулся с некоторыми трудностями и, похоже, не могу найти какое-либо решение этих проблем ... (и, похоже, ни один видеоурок или пост в блоге пока что не очень помогли).
Что яя пытаюсь сделать, это определить функции и псевдонимы, которые делают мою работу с Git в PowerShell более удобной - и да, я знаю о Posh-Git , и проверил это тоже - но это, кажется,В основном я имею в виду представление приятного пользовательского интерфейса в PowerShell.
Я бы хотел определить «горячие клавиши» для обычной команды Git, которую я использую все время, - и до сих пор успешно определил некоторые псевдонимы.
То, с чем я сейчас борюсь, заключается в следующем: я хотел бы иметь псевдоним для git pull
(а также git push
), который может запускаться «как есть» - например, простоgit pull
, или который может запуститьНаиболее частая команда, которую мне нужно использовать - git pull origin master
.
Я попытался определить одну функцию:
function invoke-gitpull { git pull $args }
, а затем определить два псевдонима для этого - один простовызывая эту функцию «как есть», один из которых предоставляет два параметра, например:
Set-Alias gtp invoke-gitpull
Set-Alias gtpom invoke-gitpull origin master
Но почему-то PS не нравится: - (
Set-Alias:Невозможно найти позиционный параметр, который принимает аргумент 'origin'.
+ Set-Alias 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 }
, думая, что если я предоставлю без значений параметров , тогда будет выдано git pull
- и если я предоставлю два значения параметров - invoke-gitpull -remote origin -branch master
, то будет вызвано git pull origin master
- но, опять же, PS не согласен с остальнымиh me:
Set-Alias: Невозможно найти параметр, который соответствует имени параметра 'remote'.
+ Set-Alias gtpom invoke-gitpull -remote origin -branch master
+~~~~~~~
+ CategoryInfo: InvalidArgument: (:) [Set-Alias], ParameterBindingException
+ FullyQualifiedErrorId: NamedParameterNotFound, Microsoft.PowerShell.Commands.SetAliasCommand
* 1055Затем я также попытался с параметрами
внутри функции:
, но я снова получил ту же ошибку.
Так что КАК мне нужно определить этипараметры для моей invoke-gitpull
функции, чтобы это работало?Я, кажется, иду по кругу, не совсем понимая, что я делаю неправильно ... Может кто-нибудь просветить меня?