2012-06-02 95 views
22

我很苦恼与Git,我似乎无法添加我的文件。我跑ls显示文件在当前目录中,然后运行git add .,然后git status显示“没有提交”。git add。 - >仍然“没有提交”新文件

Jennifer-Myers-Computer:first_app Jenn$ git init 

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

Jennifer-Myers-Computer:first_app Jenn$ ls 

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

Jennifer-Myers-Computer:first_app Jenn$ git add . 

Jennifer-Myers-Computer:first_app Jenn$ git status 

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

Jennifer-Myers-Computer:first_app Jenn$ 
+0

试过'git的添加./*'呢? – 2012-06-02 03:48:17

回答

49

你的命令看起来是正确的(我这样做了很多次)。

首先尝试

git add --all 

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

接下来试着看看你的.gitignore文件,如果你有一个(在你做的最高级别git init)。

cat .gitignore 

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

下一个尝试:

git add --force 

,然后尝试git status

如果没有这些工作,我注意到你的输出从git init说“重新初始化”,而不是“初始化”,所以可能已经搞砸了。如果您刚刚初始化它,不介意失去历史,通过删除git的目录开始:

rm -rf .git 

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

+0

fanstastic!谢谢!我删除了.git目录,然后做了git init,git add。 – RandyMy

+1

对我来说git add --all working ..最新的问题。 :/ – Hristo

+0

这对我有效。我做的唯一更改是'git add。 --force'。 – RaulGM

3

在我来说,我解决它通过隐藏,并随即将藏匿:

git stash 
git stash apply 

序列将离开回购酷似以前。在此之后,做git add [file]工作正常。

(使用下的SUSE Linux Git版本1.7.12.4)

+0

谢谢!这对我有效。 – Rich

15

因为我已经经历了类似的问题,多次我只想补充一点,你应该仔细检查你想加来自并且目前在您的项目的根文件夹中。

+3

+1这是个好主意。询问的人往往不在根。有趣的是,在这种情况下,OP不会在项目目录中显示“cd”。 –

+0

在git中开始的人们会感到困惑 - 大多数命令都是在当前工作目录的上下文中执行的。 – gravidThoughts

4

如果有人碰到这种情况,git不会添加目录的另一个原因是,该目录中可能有一个.git目录。

在这种情况下,git希望你把它当作submodule。否则,只需删除.git(在目录中,而不是根目录)并重试。

方便的命令:

find . -name '.git' -type d 
+1

哇。你的传奇。 – Mehrad