我想通过编号更改 git 分支
为了显示分支编号,我使用这个(带别名):
$ git br | nl
1 * master
2 test
现在我想通过分支编号获取分支名称并将其传递给 git checkout:
echo $(git branch | sed "s|[* ]||g;$1q;d") | xargs git checkout
但是假设它有一个别名,如何将“$1”从参数传递给这个命令?
预期行为:
alias checkout='echo $(git branch | sed "s|[* ]||g;$1q;d") | xargs git checkout'
checkout 2 # checkout to branch test
答案1
我自己找到了一个解决方案博客文章
我用函数包装了我之前的代码并放在别名中,所以我的代码.gitconfig
看起来像:
[alias]
br = "!git branch | nl"
chbr = "!f() { MY_BRANCH=$(git branch | sed \"s|[* ]||g;$1q;d\"); git checkout $MY_BRANCH; }; f"
现在我可以做如下事情:
$ git br
1 * master
2 test
$ git chbr 2
Switched to branch 'test'