log - git show commit




如何僅用第一行輸出git日誌? (4)

git log --oneline做你想做的事情嗎?

我正在嘗試自定義git log的格式。 我希望所有提交都顯示在一行中。 每行只應顯示提交消息的第一行。
發現 git log --pretty=short應該能夠做到這一點,但在我的電腦上,它顯示了完整日誌作為git log (除時間戳之外)。

此外,我嘗試使用手冊頁中定義佔位符 。 雖然,我找不到縮短日誌消息的命令。 我試過這一行git log --pretty=format:'%h : %s'它在一行中顯示短的哈希%h和完整的消息%s

我在Vista上使用git version 1.7.3.1.msysgit.0

也許這跟我寫我的提交信息的方式有關。 這裡是一個例子:

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.

所以,給出的例子我只想輸出Added some functionality. 由短頭散列前綴。


你試過這個嗎?

git log --pretty=oneline --abbrev-commit

問題可能是您在第一行之後缺少空行。 上面的命令通常適用於我,但我只是在沒有空的第二行的情況下進行測試。 我得到了和你一樣的結果:整條信息在一行上。

空的第二行是git commit消息中的標準。 你看到的行為可能是有意實現的。

提交消息的第一行是一個簡短的描述。 如果你不能把它放在一行中,你可以使用幾個,但git會在第一個空行之前將所有內容都視為“簡短描述”。 oneline打印整個簡短的描述,所以你所有的3行。


您可以定義全局別名,以便以更舒適的方式調用短日誌:

git config --global alias.slog "log --pretty=oneline --abbrev-commit"

然後你可以使用git slog來調用它(如果啟用了它,它甚至可以使用自動完成功能)。


沒有提交消息,只有散列:

git log --pretty=oneline | awk '{print $1}'




commit-message