【发布时间】:2011-07-09 22:28:09
【问题描述】:
标题不准确,但我不能用一行更好地表达它。
- 我实际上知道如何更改 git 提交消息,例如 here。
- 但我知道它也总是会更改 SHA-1,我想避免这种情况。
我只想看到git-log 中的不同消息。我认为可以使用git-notes 以某种方式完成,但我没有做到。
说明:
我需要它来修复提交消息中的错误。我总是在那里写包含我与客户沟通的文件的名称(它看起来就像T1234 Replace foo by bar)。沟通往往很长,所以我可以浪费很多时间,直到我发现我被提交消息中的错误文档名称误导了。
使用git-notes
看起来git-notes 实际上就像here 所说的那样工作。但是我总是使用
git log --oneline
所以我从来没有看到它。关于让 git 对用户撒谎的评论:恕我直言,只有在使用像 --replace-messages-by-notes 这样的特殊开关时才会发生这种情况是可以接受的,不是吗?因为我总是使用别名而不是直接使用git log,所以我不需要输入很多内容就可以得到我想要的。
您认为这是一个合理的功能要求还是会向我推荐其他工作流程?
【问题讨论】:
-
这听起来就像
git-notes将成为解决方案,所以如果您澄清为什么git-notes不适合您,也许会有所帮助。为什么要更改git-log所说的内容(实际上是让git-log对用户撒谎)? -
是的,git log 应该撒谎......但谎言实际上是正确的,因为输入的提交消息是例如引用错误的文件。当我盲目地遵循 git-commit 所说的内容时,我只会损失不可忽略的时间,直到我发现错误为止。
-
您实际上并不想更改提交消息(正如其他人所说,它从根本上与 git 的工作方式相反)。但我认为这不是问题 - 听起来你真正的问题是“我如何让
git log向我显示注释而不是提交消息,如果它们存在的话?” -
对...现在这对我来说实际上很明显,但不是我开始提问的时候。
-
你可以使用
git replace来做你想做的事,但我会小心使用它来替换大量提交(由于文件数量非常多,它可能会导致性能问题在.git/refs/replace/中——至少在重新打包存储库之前)。