如何將我的提交日誌轉儲爲僅顯示具有給定名稱空間的備註的日誌?過濾git日誌以僅顯示提交提示
提交無筆記,或Notes不屬於給定的命名空間應該被過濾掉
在文本轉儲我不想只是說明,還提交信息。
我玩過:show refs/notes /,我相信解決方案可能在那裏,而不是「git log」。不過,我仍然遇到一些問題,以找到正確的命令,並顯示所有提交。
如何將我的提交日誌轉儲爲僅顯示具有給定名稱空間的備註的日誌?過濾git日誌以僅顯示提交提示
提交無筆記,或Notes不屬於給定的命名空間應該被過濾掉
在文本轉儲我不想只是說明,還提交信息。
我玩過:show refs/notes /,我相信解決方案可能在那裏,而不是「git log」。不過,我仍然遇到一些問題,以找到正確的命令,並顯示所有提交。
git notes
會給你每個音符的id和它適用於什麼對象。所以第二列就是你想要的。那最後一列使用cut
,並將其傳遞到git show
$ git notes
f5ac8874676de3029ffc8c31935644ff7c4deae0 07ca160c58cf259fe8bb5e87b9d9a7cbf8845f87
62ecfc95355587d6d1f779fcaca6e4f53d088ccc eb6c60b9dcb56219d9d882759c0bf928f6d6c3fa
搶。
$ [ "$(git notes)" = "" ] || git notes | cut -d' ' -f2 | xargs git show
要選擇一個特定的命名空間,添加--ref=namespace
到git notes
。
$ [ "$(git notes --ref=namespace)" = "" ] || git notes --ref=namespace | cut -d' ' -f2 | xargs git show
最初的測試,可以防止一個小問題:git show將顯示當前結帳如果沒有參數傳遞。 所以如果沒有筆記,你會得到誤導性的輸出。初始測試不是 是一個問題:如果測試失敗,即沒有筆記,那麼git show將不會被調用。
謝謝!它會使一個非常好的別名 – SystematicFrank
'-r'標誌(或'--no-run-if-empty')將修復GNU'xargs'的「輕微問題」。 –
您可以將測試添加到Schwern擁有答案:
[ "$(git notes)" = "" ] || git notes | cut -d' ' -f2 | xargs git show
或拿起一個特定的命名空間:
[ "$(git notes --ref=namespace)" = "" ] || git notes --ref=namespace | cut -d' ' -f2 | xargs git show
然後,如果最初的測試[...]失敗,即如果沒有筆記,git show不會被調用。
你有沒有嘗試過'git notes list'? –