远程和本地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/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

查看所有这些差异

最新更新