标题不准确,但我无法用一行表达它。
我只想在git-log
中看到其他消息。我认为可以使用git-notes
以某种方式完成,但我还没有管理它。
我需要它来修复提交消息中的错误。我总是在那里写一个文件的名称,其中包含我与客户的沟通(看起来就像T1234 Replace foo by bar
)。通信往往是相当长的,这样我就可以松了大量的时间,直到我发现我被错误的文件名提交信息的误导。
git-notes
看起来git-notes
实际上按照here的规定运作。但是我总是使用
git log --oneline
所以我从不看到它。关于有关使混帐骗用户评论:恕我直言,这是可以接受的使用像--replace-messages-by-notes
,是不是一个特殊的开关,当这种情况发生时唯一的?因为我总是使用别名而不是直接使用git log
,所以我会得到我想要的东西而不需要输入很多东西。
您认为这是一个合理的功能要求,还是会向我推荐其他工作流程?
答案 0 :(得分:15)
git notes
是在不更改SHA1的情况下获得不同git日志消息(不同于提交消息)的唯一方法,如"Notes to Self" article中所述。
但有几点评论:
git notes
无法为您工作的原因)。refs/notes/*
)答案 1 :(得分:8)
正如各种人所指出的那样(例如在VonC's very useful answer中),git notes
确实是你正在寻找的机制。您将别名更改为以下内容是不够的?
git log --oneline --show-notes
据推测,只是偶尔你必须为一个提交添加一个注释,这些注释在该命令的输出中会在视觉上突出显示。
如果你真的想要替换每个提交的主题,如果存在笔记,你总是可以创建一个脚本:
for c in $(git rev-list HEAD)
do
n=$(git notes show $c 2> /dev/null)
m=$(git show --oneline $c|head -1)
if [ -n "$n" ]
then
m=${m/ */ $n}
fi
echo $m
done
......但在我看来,这对于微不足道的收获来说更加丑陋。
答案 2 :(得分:7)
从技术上讲,这似乎是不可能的(至少对我来说,我不是git pro)。
git commit存储树形哈希(想想:当时工作目录的状态)以及其他提交信息。当您更改提交消息时,树形哈希将不会更改,但是提交哈希将更改,因为它是从提交对象计算的,没有办法解决它。
有关详细信息,请参阅Progit internals。