我已经为git
定义了一堆命令别名。这些都是:
del alias:gp -Force
del alias:gl -Force
del alias:gcm -Force
function get-gst { git status }
set-alias -name gst -value get-gst
function get-gco ([string]$branch) {
git checkout "$branch"
}
set-alias -name gco -value get-gco
function get-gcob ([string]$branch) {
git checkout -b "$branch"
}
set-alias -name gcob -value get-gcob
function get-gp { git push }
set-alias -name gp -value get-gp
function get-gl { git pull }
set-alias -name gl -value get-gl
function get-gcm ([string]$message) {
git commit -m "$message"
}
set-alias -name gcm -value get-gcm
function get-ga ([string]$path) {
git add "$path"
}
set-alias -name ga -value get-ga
function get-gap { git add --patch }
set-alias -name gap -value get-gap
function get-gsta { git stash push }
set-alias -name gsta -value get-gsta
function get-gstp { git stash pop }
set-alias -name gstp -value get-gstp
function get-glo { git log --oneline }
set-alias -name glo -value get-glo
function get-a ([string]$option, [string]$option2, [string]$option3) {
php artisan "$option" "$option2" "$option3"
}
set-alias -name a -value get-a
具体来说,这是Powershell的$Profile.AllUsersAllHosts
的内容目前,我对git checkout branch
和git checkout -b branch
有2个独立的功能。别名分别为gco branch
和gcob branch
。
我想要的是一个类似于我的列表中的最后一个别名(php artisan
)的函数,这样我就可以有这样的东西:
function get-gco ([string]$option, [string]$option2) {
git checkout "$option" "$option2"
}
set-alias -name gco -value get-gco
. .这将允许我编写gco -b branch
,或者实际上将任何其他选项传递给git checkout
命令。不幸的是,这不起作用,在写gco -b newBranchName
时什么也没有发生(就好像我只写了git chekout
),但如果我写gco "-b" newBranchName
或gco '-b' newBranchName
,它确实起作用。
你认为有可能使这个函数在Powershell中不需要引号吗?你会怎么做?或者,是否可以在其他命令行界面中执行,例如git bash?
设置$args
自动变量:
function get-gco {
git checkout @args
}
这将按原样传递任何附加参数给git checkout
,所以现在您可以这样做:
get-gco existingBranch
# or
get-gco -b newBranch
…使用相同的函数