我在分支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
和视觉上的区别,但我希望有一个更简单,更不容易出错的方法。
当前回答
如果你想使用gitk:
gitk master..branch-X
它有一个漂亮的老式GUi
其他回答
如果你想使用gitk:
gitk master..branch-X
它有一个漂亮的老式GUi
我使用了一些答案,并找到了一个适合我的情况(确保所有的任务都在发布分支中)。
其他方法也可以,但我发现它们可能会添加我不需要的行,比如合并提交,没有添加任何值。
git fetch
git log origin/master..origin/release-1.1 --oneline --no-merges
或者你可以把你现在的和硕士的比较一下
git fetch
git log origin/master..HEAD --oneline --no-merges
Git获取是为了确保你使用的是更新的信息。
通过这种方式,每个提交都在一行上,您可以复制/粘贴到文本编辑器中,并开始将任务与将要合并的提交进行比较。
如果您使用的是Linux,那么gitg是一种非常快速且图形化的方法。
如果你坚持使用命令行,你可以使用:
git log --oneline --decorate
为了让git日志在默认情况下更好,我通常设置这些全局首选项:
git config --global log.decorate true
git config --global log.abbrevCommit true
如果你想要基于提交消息进行比较,你可以执行以下操作:
git fetch
git log --oneline origin/master | cut -d' ' -f2- > master_log
git log --oneline origin/branch-X | cut -d' ' -f2- > branchx_log
diff <(sort master_log) <(sort branchx_log)
#! /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工具的命令。