新的Bitbucket Branches页面非常棒。它显示了每个分支在master之前/之后的提交次数。是否有显示相同信息的Git别名?
信息应显示:
答案 0 :(得分:2)
看看我在回答一个稍微不同的问题时发布的脚本:https://stackoverflow.com/a/18760795/683080
您需要确保自己与git fetch
或git fetch --all
保持同步。一旦你,你可以用它来显示分支的前方或后方。 Git不存储此信息的缓存版本,因此如果您的分支远远落后(比如Linux内核当前提示的6,000次提交),那么计算可能需要一些时间。否则,它很快。
一个小注意事项:脚本没有显示上次更新的日期,但它确实显示了其余部分。
答案 1 :(得分:1)
如果你设置了主人'作为上游跟踪分支:
git branch --set-upstream-to master
然后执行git branch -vv
,应该看看您的主题分支提前/退出多少次提交。至于分支最后一次更新,我不认为Git会存储这些信息。
答案 2 :(得分:1)
我使用一个小的perl脚本,只使用'git log branch1..branch2'命令来计算branch2中有多少提交,但branch1中没有,反之亦然。它针对指定的基础为每个分支运行此命令。
我将它直接安装在git-core文件夹中,作为名为git-brstatus的文件。它显示:
> git brstatus master Behind Branch Ahead 3 dev 2
这是分支图:
┌─[HEAD]──[master]──6 ├ 5 ├ 4 │ ┌─[dev]──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);
}