我编写了一个别名来输出 N 个最后 checkout 的分支
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/\*
关于bash - 当分支和标签都指向同一个提交时,如何引用该分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63035371/