git diff在针对HEAD的索引中重命名了文件

时间:2014-01-22 22:29:31

标签: git

我的仓库中有一个文件。我用git mv重命名了这个文件。然后我做了一些编辑。我没有做任何事情。因此,当我运行git status时,它会在我的索引中显示重命名为:

renamed: A.txt -> B.txt

我想将文件B.txt中的索引中的更改与a.txt的HEAD修订版区分开来。我怎样才能做到这一点?我发现了一些类似的问题,这些问题通过提及-M选项得到了解答,但两者都是关于你将一个提交与另一个提交区分开来的情况。不会针对提交对您的索引进行分阶段更改。

2 个答案:

答案 0 :(得分:0)

似乎按照我的预期工作。 Console.log如下。也许我误解了一些事情。我也展示了我的git版本。

➜  xg git:(home) ✗ git init
Initialized empty Git repository in ~/xg/.git/
➜  xg git:(master) echo cool > a.txt
➜  xg git:(master) ✗ git add .
➜  xg git:(master) ✗ git commit -m cool
[master (root-commit) 93c4809] cool
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
➜  xg git:(master) git mv a.txt b.txt
➜  xg git:(master) ✗ ls
b.txt
➜  xg git:(master) ✗ echo beans >> b.txt 
➜  xg git:(master) ✗ git diff
diff --git a/b.txt b/b.txt
index 2b58f89..56b656c 100644
--- a/b.txt
+++ b/b.txt
@@ -1 +1,2 @@
 cool
+beans
➜  xg git:(master) ✗ git --version
git version 1.8.3.4 (Apple Git-47)
➜  xg git:(master) ✗ 

答案 1 :(得分:0)

最后提出了一个有效的解决方案。我正在Windows上使用msys git,这可能与也可能不相关,但我不能像git diff那样使用它,正如另一张海报所提到的那样。

git diff -M50 HEAD - [oldpath] [newpath]