首页 > 解决方案 > 如何通过“去重”分支名称(如下所述)压缩我的 git 日志输出?

问题描述

我想显示我git log的分支名称是“去重复的”——这样起源上的同一个分支就不需要在本地名称旁边显示它的全名。

例如,这是我目前作为我的第一行的内容git log --graph

* 9c202db5 (HEAD -> feature/blah-blah-descriptive-name--289, origin/feature/blah-blah-descriptive-name--289) do the thing to the code

但我希望它变得更像这样(这只是一个例子——只要能达到相同的基本效果就可以了):

* 9c202db5 (HEAD -> feature/blah-blah-descriptive-name--289 <-> origin) do the thing to the code

(此处的 SHA1 缩短是出于美观目的,以使差异在不滚动的情况下可见。)

标签: gitgit-log

解决方案


Git 在内部没有任何东西可以做到这一点。它所做的只是refs/heads/从分支名称中删除,并且refs/remotes/(或有时只是refs/)从远程跟踪名称中删除。

您可以编写自己的代码来读取git log输出并对其进行编辑。请注意,如果您命名一个分支,您将遇到 Git 本身遇到的相同歧义问题origin。在内部,Git 知道区别,因为refs/heads/origin它显然是一个分支名称——它以开头refs/heads/——而refs/remotes/origin/master显然是一个远程跟踪名称,因为它以refs/remotes/. 从外部看,很难说出什么是什么。但是您可能对此没意见,就像 Git 如果您命名一个(本地)分支origin/master一样:只要避免这样做,这不是问题!


推荐阅读