情况:
我在Windows 7上安装了Git 1.9.5.github.0。 我目前在每个或三个区域(存储库,登台索引和工作目录)中都有一个文件版本。该文件的所有三个版本都不同,因为每个版本的文本行都比旧版本更多。
问题:
当我输入命令git diff,git diff --cached first_file.txt或git diff HEAD;响应显示它检测到差异,但不显示这些差异。 ----(见下面的代码)
Z:\myFirstGit [master +0 ~1 -0]> git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: first_file.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: first_file.txt
Z:\myFirstGit [master +0 ~1 -0 | +0 ~1 -0]> git diff
diff --git a/first_file.txt b/first_file.txt
index 2b6f7c0..0090cbf 100644
Binary files a/first_file.txt and b/first_file.txt differ
Z:\myFirstGit [master +0 ~1 -0 | +0 ~1 -0]> git diff head
diff --git a/first_file.txt b/first_file.txt
index e1a914a..0090cbf 100644
Binary files a/first_file.txt and b/first_file.txt differ
Z:\myFirstGit [master +0 ~1 -0 | +0 ~1 -0]> git diff --cached first_file.txt
diff --git a/first_file.txt b/first_file.txt
index e1a914a..2b6f7c0 100644
Binary files a/first_file.txt and b/first_file.txt differ
我期待的是:
> git diff
diff --git a/first_file.txt b/first_file.txt
index e1a914a..0090cbf 100644
--- a/first_file.txt
+++ b/first_file.txt
@@ -1 +1,2 @@
This is the first_file test.
+One more line.
问题:
为什么我得到响应“二进制文件a / first_file.txt b / first_file.txt不同”而不是明确显示差异?
答案 0 :(得分:1)
您的文件当然包含使Git将文件视为二进制文件的数据。因此,它无法显示差异。
您可以强制Git通过编写以下内容将您的文件视为diff操作的文本:
first_file.txt diff
<{1>}文件中的。 请参阅this similar question和.gitattribute的文档。
答案 1 :(得分:0)
这通常在文件模式发生变化时发生。
你可以在这一位看到差异:
100644
--- a/first_file.txt
+++ b/first_file.txt
这意味着文件的模式已更改为644
。 (见file modes)
答案 2 :(得分:0)
首先,我要感谢Frodon提供的链接,引导我解决我的问题。
<强>解决方案强>
问题在于文件的编码。我最初在记事本中完成了所有或我的文本文件编辑。从Frodon提供的链接中,我发现了一个帖子,其中的人使用Notepadd ++来找出正在使用的编码并进行更改。
git add first_file.txt
,最后git commit first_file.txt -m 'Changed encoding'
。git diff