如何编写复杂的.bashrc快捷方式

时间:2017-02-28 12:02:48

标签: git

我开始使用.bashrc来编写我经常使用的git命令的快捷方式。

我为此付出了很多努力,因为99%的教程因为某些奇怪的原因而无法为我工作。例如,使用配置文件和其他建议什么都不做。

.bashrc确实有效,所以我开始写这些:

alias gg='git gui'
alias gs='git status'
alias gb='git branch'
alias gc='git checkout'

我要添加的下一个是这个更复杂的东西,构建一个这样的命令:

git branch --set-upstream-to=origin/X X

因为git总是要求我一直输入那个愚蠢的命令而且耗费时间。

我开始关注函数,我尝试过这样的事情:

alias gsu='function _gsu(){ "git branch --set-upstream-to=origin/$1 $1"}'

所以我可以输入

gsu foo

它将尝试运行:

git branch --set-upstream-to=origin/foo foo

但它没有用。

知道如何完成此命令以使其正常运行吗?

3 个答案:

答案 0 :(得分:1)

别用该功能。

只需将功能从_gsu重命名为gsu

即可

重新加载配置文件后,您应该可以执行gsu foo,这将运行git branch --set-upstream-to=origin/foo foo

答案 1 :(得分:1)

给你两条建议。

首先,对于gsu函数,只需在.bashrc中定义函数,而不尝试为其创建别名。

gsu() {
    git branch --set-upstream-to=origin/"$1" "$1"
}

但是对于你的shell别名集合,我的方法是用一个替换所有这些:

alias g=git

然后将您的快捷方式放入~/.gitconfig文件中。这是我使用的部分内容:

[alias]
  st   = status -sb
  co   = checkout
  ci   = commit
  br   = branch
  lg   = log --decorate --graph --all  --format='%C(yellow)%h%Creset %Cred%d%Creset %s %Cgreen%an%Creset (%C(cyan)%ar%Creset)'

然后,如果要创建名为“foo”的分支,请键入:

$ g br foo

它不像你的双字符shell别名那么紧,但它将你所有与git相关的配置保存在我喜欢的git配置文件中。

答案 2 :(得分:0)

我这样做是为了工作。

首先声明一个这样的函数:

function gsu {
   git branch --set-upstream-to=origin/$1 $1
}

然后像这样定义:

alias gsu='gsu'