我正在寻找在git fetch
之后查看给定远程分支上更改的最佳方法,但是我想忽略我已经提交(但没有推送/合并)的更改。一般来说,我的流是
git commit
git commit # something else
git fetch
git diff HEAD^^..origin/stable # HEAD^^ is the commit right before my two commits above
想看看是否有一种方法来处理HEAD^^,以显示我所知道的origin/stable(在本例中是HEAD^^)和获取后的origin/stable之间的变化。
基本上,我希望看到自上次获取以来提交到分支的所有新代码,忽略我在本地分支上进行的任何阶段(或非阶段)更改。
谢谢你的帮助。
解决方案根据下面@carl-norum的回答,我在。git/config
中添加了以下内容 [alias]
fetch-diff = !git fetch 2>&1 | awk '/[a-z0-9]+[.][.][a-z0-9]+/ { print $1 }' | xargs -L 1 git diff
,现在使用git fetch-diff
,它将获取并打印每个分支的差异。
git diff HEAD^^ origin/stable
应该做你正在寻找的东西。然而,fetch
操作应该提供一些输出,如:
76e5999..0564fab master -> origin/master
显示origin/master
上的哈希值变化(在我的示例中)。你可以这样写:
git diff 76e5999 0564fab
查看所有这些差异