新的Bitbucket分支页面非常棒。它显示了每个分支在主/从之后的提交数量。有没有显示相同信息的Git别名?别名,显示有多少提交分支在主/从之后
的信息应显示:
- 分公司名称
- 当最后更新
- 多少承诺其背后的主人
- 多少犯了主人的前方
新的Bitbucket分支页面非常棒。它显示了每个分支在主/从之后的提交数量。有没有显示相同信息的Git别名?别名,显示有多少提交分支在主/从之后
的信息应显示:
看看我张贴在回答一个稍微不同的问题脚本:https://stackoverflow.com/a/18760795/683080
你需要确保你是一个git fetch
或git fetch --all
跟上时代的。一旦你是,你可以用它来显示分支前后有多远。 Git不存储这些信息的缓存版本,所以如果你的分支远远落后(比如在Linux内核的当前技巧之后6000个提交),那么计算可能需要一些时间。否则,它非常快。
一个小提示:该脚本没有显示上次更新的日期,但它确实显示了其余部分。
如果你设置“主人”作为上游跟踪分支:
git branch --set-upstream-to master
,然后做git branch -vv
,应该看到您的主题分支是多少承诺提前/落后。至于分支最后一次更新,我不认为Git存储这些信息。
我使用一个小的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);
}
'GIT中分支-vv'不显示这样的信息(至少在OSX和git 1.8.4):所有我可以看到的是*分支名,沙,上游,最后提交消息* –
完全正确。 'git status'也显示了这一点,所以它必须是获取这些信息的一种方式。 – Gaui