我如何看到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