当我输入git status
时,我看到了
Your branch is up-to-date with 'origin/master'.
如果我有多个遥控器,并且我想与远程通话'功能进行比较,我输入git状态,它仍然与原点进行比较。有没有办法当我输入git status
时,我看到了
Your branch is up-to-date with 'feature/master'.
?
也可以做一些像git status feature - >比较本地主机与功能/主机,或git status feature1 feature2 - >比较本地主机与feature1 / master和feature2 / master?
如果不可能,那么查看某些遥控器或分支机构(即使是两个不同的本地分支机构)前后有多少提交的最佳方法是什么?我不想要git diff
因为这给了我太多细节
提前致谢。
答案 0 :(得分:2)
基于Show git ahead and behind info for all branches, including remotes,这里有一个shell脚本,它允许你为任何两个提交提供一个“前面......后面......”消息:
file ./ahead.sh :
#!/bin/bash
left=$1
right=$2
leftahead=`git rev-list --count $right..$left`
rightahead=`git rev-list --count $left..$right`
echo "$left (ahead $leftahead) | (behind $rightahead) $right"
用法:
$ ./ahead.sh HEAD origin/master
HEAD (ahead 7) | (behind 0) origin/master
git rev-list $left..$right
显示从[{1}}和$left
到$right
的共同祖先开始(但不包括)的提交序列。
$right
将简单计算此序列中的提交次数。
同时使用git rev-list --count $left..$right
和git rev-list --count $left..$right
,您可以获得前进/后退计数(“前方”和“后方”取决于哪个提交作为参考)。
有关已修改文件的列表(àla git rev-list --count $right..$left
),您可以使用git status
:
git diff --name-status
<强>更新强>
如果#!/bin/bash
left=$1
right=$2
leftahead=`git rev-list --count $right..$left`
rightahead=`git rev-list --count $left..$right`
echo "$left (ahead $leftahead) | (behind $rightahead) $right"
git diff --name-status $right $left
产生的输出太长,寻呼机将启动,并隐藏最初的git diff --name-status
行。这是一个修复,使用ahead | behind
选项:
--no-pager