71

我在 Git 上苦苦挣扎,我似乎无法添加我的文件。我跑来ls显示文件在当前目录中,然后运行git add .显示git status“没有提交”。

JJ-Computer:first_app JJ$ git init

Reinitialized existing Git repository in /Users/JJ/rails_projects/first_app/.git/

JJ-Computer:first_app JJ$ ls

Diary.txt README.rdoc config.ru log   tmp
Gemfile   Rakefile  db    public    vendor
Gemfile.lock  app   doc   script
README    config    lib   test

JJ-Computer:first_app JJ$ git add .

JJ-Computer:first_app Jenn$ git status

# On branch master
nothing to commit (working directory clean)

JJ-Computer:first_app JJ$ 
4

14 回答 14

138

您的命令看起来正确(我已经这样做了很多次)。

第一次尝试

git add --all

然后尝试git status。我认为这不会解决它,但接下来值得尝试。

接下来尝试查看你的 .gitignore 文件,如果你有一个(在你做的顶层git init)。

cat .gitignore

删除那里导致您的文件被忽略的所有列表。例如,是否有一个条目只是*

下次尝试:

git add --force

然后尝试git status

如果这些都不起作用,我注意到您的输出显示git init“重新初始化”而不是“已初始化”,因此某些事情可能已经搞砸了。如果您刚刚初始化它并且不介意丢失历史记录,请通过删除 .git 目录重新开始:

rm -rf .git

然后重新执行上面的相同命令。如果这不起作用,则需要有关您的设置的更多信息。例如,您可能有一个全局 .gitignore 文件:~/.gitignore_global需要对其进行编辑(如果您不想要,也可以将其删除)。

于 2012-06-02T03:55:45.033 回答
93

由于我多次遇到类似问题,我只想补充一点,您应该仔细检查您是否正在尝试添加,并且当前位于项目的根文件夹中

于 2015-09-23T11:03:11.643 回答
17

万一其他人碰到这个,git不添加目录的另一个原因是该目录中可能有一个.git目录。

在这种情况下,git 希望您将其视为submodule。否则,只需删除它.git(在目录中,而不是根目录中)并重试。

方便的命令:

find . -name '.git' -type d
于 2016-03-25T21:29:55.593 回答
4

就我而言,我通过存储解决了它,然后立即应用存储:

git stash
git stash apply

这个序列将使回购完全像以前一样。在此之后,做的git add [file]工作正常。

(suse linux下使用git版本1.7.12.4)

于 2015-04-16T18:09:08.577 回答
3

出于某种原因,当我在 Google Drive File Stream 中的目录中有一段时间的存储库时,Git 对我很有效。昨天,我遇到了同样的问题。git add .不会报告任何要提交的内容,但git add <some explicit filename>工作没有问题。我将目录移动到我的本地硬盘驱动器(来自 Google Drive File Stream),并git add .获取了所有待处理的更改。请注意,当目录仍在 Google Drive File Stream 上时,将目录设置为“离线可用”无效。

于 2019-03-13T00:32:49.033 回答
2

在我的情况下,由于在当前 git 目录中嵌套了一个 git 目录:

A1.java
B1.java
.git
someDirectory
  C1.java
  .git        
cd someDirectoy
rm .git -rf
于 2019-02-21T02:10:23.943 回答
2

我刚才也有这种情况。就我而言,这是文件(小写/大写)问题。问题是 - 我NuGet.config修改了文件,之后,Visual Studio 出于某种原因重新创建了这个文件,但使用了名称NuGet.Config(注意,不是.config,但是.Config)。

我发现的最简单的解决方法是将这个文件删除(实际上是移动)到另一个位置,并在没有这个文件的情况下提交。git status消息是

[deleted] NuGet.config
[deleted] NuGet.Config

然后我将我的文件复制回 repo 目录并提交,一切都按原样工作。

长话短说,就我而言,这是文件命名策略冲突。在 Windows 中,文件名中的大写/小写字符无关紧要,但对于源自 UNIX 的git命令则可以。

于 2019-11-24T10:47:48.940 回答
2

I had a similar issue and realised that I was doing git add . from a subdirectory of main.

Be sure to be at the root of your project or you can use git add --all from any subdirectory and it will be ok.

于 2021-06-22T12:46:42.980 回答
1

补充 quux00 的.gitignore答案,我发现由于我的构建管理器(Maven)的临时“构建”目录,我的目录没有被跟踪。Maven.gitignore在构建我的程序时添加了“build”,因此我自己的目录(巧合地命名为“build”)没有被跟踪。这是通过重命名我的“构建”目录来解决的。

于 2018-04-03T15:38:21.543 回答
1

我发现发生这种情况的原因完全不同,而且很重要。如果您不在 Windows 中,这可能不会影响您。如果您在未暂存的更改中看到您的文件,那么 .gitignore 永远不会成为您的问题。非常仔细地检查一些东西。您的文件是否处于分阶段和非分阶段更改中?

git status
Staged changes
  modified: source/abc.Ui.Tests
  modified: source/def.Ui.Tests/def.UI.Tests.csproj
Unstaged changes
  modified: source/abc.UI.Tests
  modified: source/def.UI.Tests/def.UI.Tests.csproj

看到不同?很难发现。Windows 不关心大小写,但 git bash 关心。

git rm -r source/abc.Ui.Tests
git reset source/abc.UI.Tests
git commit -m "Fixing capitalization"
git checkout source/abc.UI.Tests
git status
     working clean tree
于 2020-06-17T15:52:47.617 回答
0

一个一个试试git add <folder_name>

如果第一个文件夹已上演。尝试添加下一个文件夹。就我而言,我得到一个文件包含一些问题。

git add .如果在某些文件中有问题时直接运行,git 将忽略所有这些。不是专家,但这就是发生在我身上的事情:)

于 2020-09-17T07:44:44.837 回答
0

This seem a little dumb, but may save someone time: check if the file is already tracked and has no modifications: git ls-files --error-unmatch <file>. This command should not show any errors if the file is tracked.

I just spend a few minutes to figure out this...

于 2020-12-04T14:10:54.547 回答
0

I had this issue on windows. None of the existing solutions pointed to something wrong on my side at all. I renamed the files, staged, then renamed back to their previous file name, then staged, and all was good.

于 2022-01-04T18:35:23.827 回答
-2

我在将新文件添加到现有的初始化 git 文件夹时遇到了类似的问题。git add <filename>没用。对我有用的是git add .我在 mac 上使用 bash 5 和 git 2.25。我希望这对其他人也有帮助……干杯。

于 2020-01-24T18:49:44.057 回答