我的仓库中有一个文件。我用git mv重命名了这个文件。然后我做了一些编辑。我没有做任何事情。因此,当我运行git status时,它会在我的索引中显示重命名为:
renamed: A.txt -> B.txt
我想将文件B.txt中的索引中的更改与a.txt的HEAD修订版区分开来。我怎样才能做到这一点?我发现了一些类似的问题,这些问题通过提及-M选项得到了解答,但两者都是关于你将一个提交与另一个提交区分开来的情况。不会针对提交对您的索引进行分阶段更改。
答案 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]