更改git status比较的分支

时间:2014-08-06 08:37:43

标签: git github

当我输入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因为这给了我太多细节

提前致谢。

1 个答案:

答案 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..$rightgit 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