如何在git log命令结果中包含分支名称

时间:2016-05-03 13:08:48

标签: git git-log

我列出了一直使用命令

更改特定文件的提交
$ git log --all --graph --abbrev-commit --format=fuller  --follow <path_to_filename>

它显示包含提供的文件名的格式良好的提交。但是我很难找到提交。我用了

$ git branch --contains 10264d5

查找包含特定提交的分支名称。

有没有办法在git log命令中包含分支名称?我尝试使用this answer中推荐的命令,但它不能与--filename参数一起使用。

2 个答案:

答案 0 :(得分:1)

我不相信这是可能的。您可以添加--decorate选项,但如果其中一个已记录的提交恰好位于refs/heads中,则只会列出分支名称。

我相信你必须编写自己的自定义包装器来实现这一目标。

这令人沮丧,而且很烦人。一些git人会通过描述git架构来回应并展示它是如何不容易实现的,并且在一些更复杂的情况下,它没什么意义。我不是在争论任何一个,但它许多人会觉得有用的东西,会提高他们的生产力。

答案 1 :(得分:1)

找到与你相同的问题,我为它写了一个小的bash包装。

它不支持许多日志选项(graphall是最值得注意的断路器),但大多数format选项都应该开箱即用。< / p>

log_branch(){
    commit_list=$(git log --pretty="%H")
    for commit_hash in $commit_list;do
        show=$(git log -n 1 $commit_hash $@)
        branches=$(git branch --column --contain $commit_hash | sed -e 's/* /*/' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
        output=$(echo "$show" | sed "s@$commit_hash@$commit_hash {$branches}@")
        echo "$output"
    done
}

上传到GitHub