我在分支x上,并在它上面添加了更多的提交。我想看看MASTER和我所在的分支在提交方面的所有差异。我可以做一个
git checkout master
git log
然后是
git checkout branch-X
git log
和视觉上的区别,但我希望有一个更简单,更不容易出错的方法。
我在分支x上,并在它上面添加了更多的提交。我想看看MASTER和我所在的分支在提交方面的所有差异。我可以做一个
git checkout master
git log
然后是
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
其他回答
如果你想使用gitk:
gitk master..branch-X
它有一个漂亮的老式GUi
这很容易做到
git log master..branch-X
这将显示分支x有而master没有的提交。
#! /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的日志在视觉上被分开,并排分开。将结尾的diff命令替换为启动可视化diff工具的命令。
我认为这是选择和环境的问题。我更喜欢用
git log origin/master..origin/develop --oneline --no-merges
它将显示在develop中不在主分支中的提交。
如果您想查看哪些文件实际上被修改了,请使用
git diff --stat origin/master..origin/develop --no-merges
如果你不指定参数,它将显示完整的差异。 如果你想看到视觉差异,在linux上安装meld,或者在windows上安装WinMerge。确保它们是默认的扩散工具。然后使用类似的东西
git difftool -y origin/master..origin/develop --no-merges
以防你想与当前分支进行比较。使用HEAD比使用use这样的分支名更方便:
git fetch
git log origin/master..HEAD --oneline --no-merges
它将显示所有即将合并的提交
你可以得到一个非常漂亮的可视化输出,看看你的分支有什么不同
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..branch-X