我已经写了一个别名来输出最后签出的N个分支
git config --global alias.last '!f() { for i in $(seq 1 $1); do git name-rev --name-only @{-$i}; done; }; f'
并且它工作几乎良好。
$ git last 4
some-branch
some-other-branch
tags/some-tag^0
yet-another-branch
当然,问题是输出的第3行,当ref(在本例中为@{-3}
(指向由标记和分支引用的提交时。它默认输出标记,而我更喜欢分支名称(如果有(。
我尝试了一些方法,即使用^{}
来取消引用标记,但没有成功。
你有没有看到我遗漏了什么,知道如何取消引用这里的标签?
接受答案后更新:别名的工作版本
git config --global alias.last '!f() { for i in $(seq 1 $1); do git name-rev --name-only --exclude=refs/tags/* @{-$i}; done; }; f'
只允许分支:
git name-rev --name-only --refs=refs/heads/*
或排除标签:
git name-rev --name-only --exclude=refs/tags/*