2012-08-13 399 views
37

试图diff我的本地文件与GitHub回购之前,我提交拉请求,所以我可以看到会显示什么,是否有一个这样做的准确方式?我假设GitHub的比较工具操纵Git的diffgit diff远程和本地回购

+1

你可以做一个git diff而不发送到文本文件。在我看来,在控制台中查看通常是有效的。 – 2012-08-13 15:21:31

+0

@dystroy我知道,但我的问题是Windows与Unix的LF,所以整个文件被追踪为diff'd。我发现控制台对于如此大的输出效率不高。 – Terry 2012-08-13 15:23:23

+0

你在windows上使用什么工具?我认为msysgit的标准参数化会自动处理它。 – 2012-08-13 15:24:42

回答

34

不做pull

  • fetch(语法是一样的git pull,但它不会自动合并)
  • diff您的目标分支和其他之间分支
  • 然后做一个merge如果你想
2

%的OP的评论他的“问题的一部分是Windows还是ü nix LFs“这应该有帮助:

你可以使用下面的配置命令告诉git-diff忽略eol代码的区别。

git config --global core.whitespace cr-at-eol 
54

比较对远程分支机构的本地工作目录,例如产地/主

  1. git fetch origin master
    这告诉GIT中取名叫 '主人' 的分支从远程命名的'起源'。 Git fetch而不是影响您的工作目录中的文件;它不会尝试合并像git pull那样的更改。
  2. git diff --summary FETCH_HEAD
    当远程分支被取出,它可以局部地通过引用FETCH_HEAD。上面的命令告诉git将工作目录文件与FETCHed分支的HEAD进行比较,并以摘要格式报告结果。摘要格式概述了变化,通常是开始的一种好方法;
  3. git diff FETCH_HEAD -- mydir/myfile.js
    如果你想看到的变化到一个特定的文件,例如myfile.js,跳过--summary选项,并引用所需的文件(或树)。
+0

Upvoting因为它提供比其他答案更多的细节。 – paxdiablo 2016-01-22 05:05:09

+2

Upvoted上下文的细节和解释。如果有人问这个问题,他们可能从git开始。当你试图围绕新技术包装头脑时,上下文和清晰的解释是非常重要的,而且它绝对不会受到伤害。 – 2016-03-04 16:22:38

+4

我想补充:2b。 'git diff --stat FETCH_HEAD'来提供更多信息,如果'--summary'不够用的话。 – Randall 2016-03-31 14:26:22