Git diff 未显示新增文件的更改

3

首先,我在新克隆的仓库上执行了 git status 命令。

$ git status
On branch Test
nothing to commit, working directory clean

现在我从另一个目录复制了一个测试项目

$ git status
On branch Test
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        Test/

no thing added to commit but untracked files present (use "git add" to track)

以下是文件列表。
$ ls Test -a
./  ../  .classpath  .gitignore  .project  Test.class  Test.java

但是git diff给出的结果如下:
$ git diff

基本上什么都没有。但如果我进行了分期并执行git diff -cached,则显示如下:
$ git diff --cached
diff --git a/Test/.classpath b/Test/.classpath
new file mode 100644
index 0000000..233be1d
--- /dev/null
+++ b/Test/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path=""/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+       <classpathentry kind="output" path=""/>
+</classpath>
diff --git a/Test/.gitignore b/Test/.gitignore
new file mode 100644
index 0000000..a9819ad
--- /dev/null
+++ b/Test/.gitignore
@@ -0,0 +1 @@
+/Test.class
diff --git a/Test/.project b/Test/.project
new file mode 100644
index 0000000..b6bd205
....

如何在不暂存的情况下查看上述更改(即在复制的文件夹未暂存时)。

请在此解释git的工作原理。是否有可能在未提交之前查看复制的文件夹/文件更改?


1
你觉得 git add --intent-to-add Test ; git diff (或者 git add -N)可以行吗? - knittl
1
可能是Can I use git diff on untracked files?的重复问题。 - 1615903
@knitti 这个方法可以用,但是我在尝试找到一种不需要每次添加新文件都这样做的方法,因为我经常这样做。只需要一个简单的命令就可以了。我不知道这只是我的问题还是其他人也不想为新文件费那么大劲。 - Siddharth
1个回答

2

你觉得这个命令怎么样:git status --porcelain | grep -e '^??' | sed -e 's/^?? //g' | xargs less

使用less命令可以查看所有未被跟踪的文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接