Git仅显示分支中特定文件的最新提交的消息

时间:2019-02-27 21:46:29

标签: git

我正在尝试获取涉及特定文件的特定分支中最新提交的提交消息。

给出分支B和文件F,我认为这可以工作:

git show --pretty=format:%b B:F

但这会忽略%b格式,仅显示文件F的内容。

我用“ log”替换了“ show”,但随后什么也不显示。

我知道我可以做到:

git log -1 --pretty=format:%b SHA

但这需要SHA,我不知道该怎么获得。

2 个答案:

答案 0 :(得分:1)

如果您按照第一句话中的说明进行搜索,

  

«触及特定文件的特定分支中最新提交的提交消息»

然后

git log -1 --pretty=format:'%b' <branch> -- path/to/file

似乎要走的路。

然后,根据phd的建议,您可以考虑单独使用完整提交消息(%B)而不是正文(%b)。实际上,如果提交仅包含一行消息(例如,如果您仅执行git commit -m "short message"),则%s(主题)将包含该消息,而%b为空。

答案 1 :(得分:0)

此脚本将为您打印出所有分支(由于-a标志而远程)以及最后的提交日期,用户和消息

git fetch --all && 
    for branch in `git branch -r | grep -v HEAD`; 
        do echo -e `git show --format="%ci %cr [%s]" $branch | head -n 1` \\t$branch; 
    done | sort -r