我如何看到git中的分支之间的提交差异?

我在分支X上,并增加了几个提交。 我想看看MASTER和我在提交方面的分支之间的所有区别。 我可以做一个

git checkout master git log 

然后a

 git checkout branch-X git log 

并在视觉上区别这些,但我希望有一个更容易,更不容易出错的方法。

你可以得到一个非常好的,直观的输出你的分支如何与此不同

 git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..branch-X 

你可以很容易地做到这一点

 git log master..branch-X 

这将显示你提交该分支X有,但主人没有。

我认为这是select和背景的问题。我更喜欢使用

 git log origin/master..origin/develop --oneline 

它将会显示不在master分支中的提交。

如果你想看看哪些文件被实际修改使用

 git diff --stat origin/master..origin/develop 

如果你不指定参数,它将显示完整的差异。 如果你想看到视觉差异,在Linux上安装meld ,或者在Windows上安装WinMerge 。 确保它们是默认的difftools。然后使用类似的东西

 git difftool -y origin/master..origin/develop 

如果你想与当前分支进行比较。 使用HEAD代替分支名称更方便:

 git fetch git log origin/master..HEAD --oneline 

它会告诉你所有的提交,即将合并

如果你在Linux上, gitg是非常快速和graphics化的方法。

如果你坚持命令行,你可以使用:

 git log --oneline --decorate 

为了使git log默认更好,我通常设置这些全局首选项:

 git config --global log.decorate true git config --global log.abbrevCommit true 

我会build议以下看到“提交”中的差异。 对于对称差异,请使用倒数参数重复该命令:

 git cherry -v master [your branch, or HEAD as default] 

如果你想使用gitk:

 gitk master..branch-X 

它有一个很好的老校贵

 #! /bin/bash if ((2==$#)); then a=$1 b=$2 alog=$(echo $a | tr '/' '-').log blog=$(echo $b | tr '/' '-').log git log --oneline $a > $alog git log --oneline $b > $blog diff $alog $blog fi 

贡献这个,因为它允许a和b日志是可视的,并排的,如果你有一个视觉比较工具。 用命令replacediff命令,启动visual diff工具。

不是完美的答案,但更好的使用Github的人:

在这里输入图像说明

转到您的回购: Insights -> Network