在 zsh 别名中引用环境变量
reference environment variable in zsh alias
我使用别名来节省 git 命令的时间,其中之一是“git push origin master”。问题是,我的一些回购协议现在使用“main”。
创建在某些目录中表示“git push origin main”而在其他目录中表示“git push origin master”的 zsh 别名的正确方法是什么?
有几种方法可以解决这个问题。如果你的目标是推送 current 分支,你可以只写 HEAD
: git push origin HEAD
.
如果你想推送 default 分支,这有点棘手,因为 Git 本质上没有默认分支的想法。如果你想使用远程的当前分支,GitHub 上的默认分支,你可以这样写:
$ git push origin $(git rev-parse --abbrev-ref origin/HEAD | cut -d/ -f2)
请注意,您可能需要 运行 git remote set-head -a origin
一次以设置 origin/HEAD
,如果远程分支名称更改,您将需要 运行 它,但是这是自动选择正确分支的最简单方法(诚然,这并不容易)。
我使用别名来节省 git 命令的时间,其中之一是“git push origin master”。问题是,我的一些回购协议现在使用“main”。
创建在某些目录中表示“git push origin main”而在其他目录中表示“git push origin master”的 zsh 别名的正确方法是什么?
有几种方法可以解决这个问题。如果你的目标是推送 current 分支,你可以只写 HEAD
: git push origin HEAD
.
如果你想推送 default 分支,这有点棘手,因为 Git 本质上没有默认分支的想法。如果你想使用远程的当前分支,GitHub 上的默认分支,你可以这样写:
$ git push origin $(git rev-parse --abbrev-ref origin/HEAD | cut -d/ -f2)
请注意,您可能需要 运行 git remote set-head -a origin
一次以设置 origin/HEAD
,如果远程分支名称更改,您将需要 运行 它,但是这是自动选择正确分支的最简单方法(诚然,这并不容易)。