代码之家  ›  专栏  ›  技术社区  ›  Samuel Dauzon

仅Git日志分支头[重复]

git
  •  0
  • Samuel Dauzon  · 技术社区  · 6 年前

    我希望看到我的respository中所有本地分支最近的n次提交(通常是1或2次)。

    基本上我想要相当于

    for i in $(ls .git/refs/heads/); do echo ====$i====; git log -1 $i; done
    
    0 回复  |  直到 11 年前
        1
  •  4
  •   torek    6 年前

    编辑,2018年8月:这里有一条捷径,以防你只想看看 从每个分支提示提交:

    git log --no-walk --branches
    

    --no-walk 防止 git log 在命令行中命名,而 --branches

    (在 --分支 --tags ,和 --remotes 选项都采用可选的glob模式,因此您可以查看 m* git log --no-walk --branches='m*' 例如。)


    本地(即“非远程”)分支是指其引用名称以开头的分支 refs/heads/

    这个 git for-each-ref 命令的设计目的是遍历引用名称,因此通常要使用它:

    git for-each-ref --format='%(refname:short)' refs/heads
    

    将全部打印出来。注意你不能把这个传给 git log -1

    git for-each-ref --format '%(refname:short)' refs/heads | \
        while read branch; do git log -1 $branch; done
    

    git for-each-ref --format='git log -1 %(refname:short)' refs/heads | sh
    

    在第二种情况下,您应该添加 --shell foo$bar .

        2
  •  0
  •   Bas Peeters rshivamca    11 年前

    可以使用以下方法获取每个分支及其最后一次提交的列表:

    git branch -vv

    [alias]                                                                         
        log-all-branches = "!sh -c 'git_dir="$(git rev-parse --show-toplevel)/.git/refs/heads/"; for i in $(ls $git_dir); do echo ====$i====; git log -n $1 $i; done' -"
    

    现在您可以通过执行 git log-all-branches 2