即使在git添加之后,也没有为提交而暂存更改

即使在git添加之后,也没有为提交而暂存更改,git,git-commit,Git,Git Commit,下面是我键入的git命令 $ git add -u -n add 'proj1/Foo.scala' $ git add . $ git add . $ git commit -m "message" On branch feature/branch Your branch is up-to-date with 'origin/feature/branch'. Changes not staged for commit: modified: ../proj1/Foo.scala 那

下面是我键入的git命令

$ git add -u -n
add 'proj1/Foo.scala'
$ git add .
$ git add .
$ git commit -m "message"
On branch feature/branch
Your branch is up-to-date with 'origin/feature/branch'.
Changes not staged for commit:
    modified:   ../proj1/Foo.scala
那么,为什么我得到的
更改没有提交?正如您所看到的,我添加了两次

现在,如果我领先并做到

git add ../proj1/Foo.scala

然后再去做它的工作。为什么我要专门处理每个文件,而不是只处理
git add。

git add。
默认情况下只添加当前工作目录及其子目录中更改的文件

如果要添加所有文件,请使用
git add-A
(这适用于最新版本的git)


或者,正如@Zak在评论中指出的,您可以使用
git commit-am“commit message”
在一个步骤中完成此操作。

git add
不起作用时,我遇到了类似的问题。

cd
下到目录,并在那里添加了
git-add
,文件按预期添加。

我通常会做一个
git-add*
。。。仅当您知道要在当前工作目录中添加所有添加/更改的文件时。。但通常情况下,您知道要在提交中添加什么。而且--您可以通过使用
git commit-a-m“message”
同时提交和添加来缩短时间,该消息的作用与
git add*
git add>相同。
只会添加当前目录中的文件(aka
)。从复制/粘贴命令中的路径看,proj1似乎位于一个目录上?为什么文件的位置从一个命令更改为下一个命令?当您干运行add时,它会将文件位置显示为
proj1/Foo.scala
,位于当前目录下的一个目录。那么为什么稍后的输出会将位置显示为
。/proj1/Foo.scala
?@TriskalJM看起来它们位于git repo的子目录中。由于第一个使用-u而没有路径,所以它查看了整个存储库,所以它打印了相对于repo顶部的路径。但是提交显示了相对于您当前位置的路径。或者他可以通过在提交中使用“添加”标志来缩短路径——即
git commit-a-m“message”
git commit-a对我不起作用。但是GitAdd-A完成了任务。