2012-06-02 5 views
22

Ich kämpfe mit Git, ich kann nicht scheinen, meine Dateien hinzuzufügen. Ich lief ls um zu zeigen, dass die Dateien im aktuellen Verzeichnis sind, lief dann git add . dann git status, die "nichts zu verpflichten" zeigte.Git hinzufügen. -> immer noch "nichts zu begehen" mit neuen Dateien

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

Versuchte 'git add ./*' statt? –

Antwort

49

Ihre Befehle sehen korrekt aus (ich habe sie viele Male so gemacht).

Erster Versuch

git add --all 

und dann git status versuchen. Ich glaube nicht, dass das das Problem lösen wird, aber es lohnt sich, es als nächstes zu versuchen.

Als nächstes versuchen Sie, Ihre .gitignore Datei anzusehen, wenn Sie eine haben (in der obersten Ebene, wo Sie git init getan haben).

Entfernen Sie alle Einträge, die Ihre Dateien ignoriert werden. Zum Beispiel gibt es einen Eintrag mit nur *?

Nächster Versuch:

git add --force 

und dann git status versuchen.

Wenn keiner von denen funktioniert, merke ich, dass Ihre Ausgabe von git init sagt "reinitialisiert" statt "initialisiert", so etwas kann durcheinander geraten haben. Wenn Sie es gerade initialisiert haben und nichts dagegen haben, Geschichte zu verlieren, von vorne beginnen, indem Sie die .git dir Entfernung:

rm -rf .git 

Und dann erneut ausführen Ihre gleichen Befehle oben. Wenn das nicht funktioniert, sind weitere Informationen zu Ihrer Einrichtung erforderlich. Beispielsweise könnten Sie eine globale .gitignore-Datei haben: ~/.gitignore_global, die bearbeitet werden muss (oder entfernt, wenn Sie es nicht möchten).

+0

fanstastisch! Vielen Dank! Ich habe das .git Verzeichnis entfernt, dann habe ich init, git add gemacht. – RandyMy

+1

für mich git add --all hat gearbeitet .. was ist das Problem mit. :/ – Hristo

+0

Das hat bei mir funktioniert. Die einzige Änderung, die ich gemacht habe, ist 'git add. --force'. – RaulGM

3

In meinem Fall löste ich es von stashing und unmittelbar danach die Stash Anwendung:

git stash 
git stash apply 

Diese Sequenz des Repo verlassen wird genau wie es vorher war. Danach funktionierte git add [file] korrekt.

(git Version 1.7.12.4 unter Suse Linux)

+0

Danke! Das hat für mich funktioniert. – Rich

15

Da ich ein ähnliches Problem mehrfach erlebt haben würde Ich mag nur noch hinzufügen, dass Sie verdoppeln sollte überprüfen, ob Sie add sind versuchen von und sind derzeit im Stammordner Ihres Projekts.

+3

+1 das ist eine gute Idee. Leute, die fragen, sind häufig nicht in der Wurzel. Es ist interessant, dass in diesem Fall das OP nicht "cd" in das Projektverzeichnis zeigt. –

+0

Große Quelle der Verwirrung für Leute, die in git anfangen - die meisten Befehle werden im Kontext des aktuellen Arbeitsverzeichnisses ausgeführt. – gravidThoughts

4

Falls jemand anderes in dieses hineinstößt, ist ein weiterer Grund, dass Git kein Verzeichnis hinzufügt, dass es vielleicht ein .git Verzeichnis in diesem Verzeichnis gibt.

In diesem Fall erwartet Git, dass Sie das als submodule behandeln. Andernfalls entfernen Sie einfach das .git (im Verzeichnis, nicht im Stammverzeichnis) und versuchen es erneut.

Handy-Befehl:

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

Wow. du Legende. – Mehrad