远程和本地之间的git差异(忽略非推送提交)
我希望看到在git fetch之后查看给定远程分支上的更改的最佳方式,但我希望忽略已提交的更改(但不是推送/合并)。一般来说,我的流程是远程和本地之间的git差异(忽略非推送提交),git,Git,我希望看到在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/stabl
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
,它将获取并打印每个分支的diff
git diff HEAD^^ origin/stable
应该做你想做的事。但是,fetch
操作应该为您提供如下输出:
76e5999..0564fab master -> origin/master
显示origin/master
上更改的哈希值(在我的示例中)。你可以这样做:
git diff 76e5999 0564fab
并查看所有这些差异。感谢您的帮助。两个问题:是否有一种通过别名实现这一点的好方法?如
git fetch diff
等?或者,更好的是,有没有一种方法可以在事后提取来自fetch的信息?我添加了我的解决方案,这正是基于您的答案我想要的。你能看一下吗?如果你同意的话,把它添加到你的评论中,这样我就可以接受了。谢谢