【问题标题】:Alias that displays how many commits branches are ahead/behind master显示有多少提交分支在 master 前面/后面的别名
【发布时间】:2013-10-10 10:10:03
【问题描述】:

新的 Bitbucket 分支页面很棒。它显示了每个分支在 master 之前/之后的提交次数。是否有显示相同信息的 Git 别名?

信息应显示:

  • 分公司名称
  • 上次更新时间
  • master 后面提交了多少次
  • 在 master 之前提交了多少次提交

【问题讨论】:

    标签: git


    【解决方案1】:

    看看我在回答一个稍微不同的问题时发布的脚本:https://stackoverflow.com/a/18760795/683080

    您需要通过git fetchgit fetch --all 确保您是最新的。一旦你在,你就可以用它来显示树枝的前面或后面有多远。 Git 不存储这些信息的缓存版本,所以如果你的分支真的落后很多(比如 Linux 内核的当前尖端落后 6,000 次提交),那么计算可能需要一点时间。否则,它会很快。

    一个小提示:脚本不显示上次更新的日期,但会显示其余日期。

    【讨论】:

      【解决方案2】:

      如果您将“master”设置为上游跟踪分支:

      git branch --set-upstream-to master
      

      然后做git branch -vv,应该看看你的主题分支有多少提交在前面/后面。至于上次更新分支的时间,我认为 Git 不会存储这些信息。

      【讨论】:

      • git branch -vv 没有显示此类信息(至少在 OSX 和 git 1.8.4 上):我只能看到 分支名称、sha、上游、最后提交消息
      • 没错。 git status 也显示了这一点,因此它必须是获取此信息的一种方式。
      【解决方案3】:

      我使用一个小的 perl 脚本,它只使用 'git log branch1..branch2' 命令来计算有多少提交在 branch2 但不在 branch1,反之亦然。它针对指定的基础为每个分支运行此操作。

      我将它作为一个名为 git-brstatus 的文件直接安装在 git-core 文件夹中。它显示:

      >> git brstatus 主 前方分支背后 3 开发 2

      这是这个分支图:

      ┌─[头]──[主]──6 ├ 5 ├ 4 │ ┌─[开发]──3 │ ├ 2 ├─┘ └ 1

      应该很容易扩展它以收集每个分支的最后提交日期。这是来源。

      
      #!/usr/bin/perl
      
      if($#ARGV != 0) {
          die "\nUsage: git-brstatus \n";
      }
      
      my $base = $ARGV[0];
      my @branches = split(/\n/, `git branch`);
      printf "%-10s%-30s%-10s\n", 'Behind', 'Branch', 'Ahead';
      foreach my $branch (@branches) {
          $branch =~ s/\s//g;
          $branch =~ s/\*//g;
          next if $branch eq $base;
          my @ahead_commits = split(/\n/, `git log --oneline $base..$branch`);
          my @behind_commits = split(/\n/, `git log --oneline $branch..$base`);
          printf "%-10d%-30s%-10d\n", ($#behind_commits+1), $branch, ($#ahead_commits+1);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-13
        • 2020-11-03
        • 2022-07-06
        • 2021-05-07
        • 2017-11-25
        • 2020-09-11
        • 2022-11-10
        • 1970-01-01
        相关资源
        最近更新 更多