git add. - >使用新文件仍然"无需提交"

Ran*_*yMy 47 git add init

我正在与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$ 
Run Code Online (Sandbox Code Playgroud)

quu*_*x00 89

你的命令看起来是正确的(我已经多次这样做了).

第一次尝试

git add --all
Run Code Online (Sandbox Code Playgroud)

然后试试git status.我不认为这会解决它,但值得尝试下一步.

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

cat .gitignore
Run Code Online (Sandbox Code Playgroud)

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

接下来尝试:

git add --force
Run Code Online (Sandbox Code Playgroud)

然后试试git status.

如果没有这些工作,我注意到你的输出git init说"重新初始化"而不是"初始化",所以有些东西可能搞砸了.如果你刚刚初始化它并且不介意丢失历史记录,那么重新开始删除.git目录:

rm -rf .git
Run Code Online (Sandbox Code Playgroud)

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

  • 对我来说,git add - 所有工作..问题是什么.:/ (3认同)
  • 太棒了!谢谢!我删除了 .git 目录,然后做了 git init, git add 。 (2认同)
  • 这对我有用。我所做的唯一更改是 `git add 。--力`。 (2认同)
  • `git add --all` 对我有用。感谢您将这些放在一起 (2认同)
  • 我的问题:我位于 **嵌套** 目录中,并尝试从父目录添加文件。 (2认同)

小智 48

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

  • +1这是一个好主意.问的人经常不在根.有趣的是,在这种情况下,OP不会在项目目录中显示"cd". (6认同)
  • 这应该是第一道防线然后是@quux00的答案 (2认同)

Wto*_*wer 10

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

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

方便的命令:

find . -name '.git' -type d
Run Code Online (Sandbox Code Playgroud)


小智 5

我遇到了类似的问题,并意识到我是git add .从 main 的子目录中执行的。

确保位于项目的根目录下,或者您可以git add --all 从任何子目录中使用,就可以了。