2017-09-28 9 views
0

Ich habe Dateien, die keine Änderungen aufweisen, aber scheinbar im Staging-Bereich hängen bleiben.Dateien, die in "nicht gesicherten Dateien" angezeigt werden, aber nicht angezeigt werden können (rotes Blockierungssymbol)

Ich habe ein Bitbucket Repo von einem vorhandenen Projekt gestartet und von der Befehlszeile habe eine $ git remote add origin https://[email protected]/username/myrepo.git in meinem lokalen Projektordner. Dann tat und initial Commit von der Kommandozeile sowie $ git push -u origin master. Ich habe dann das Projekt in die eclipse IDE mit dem IDE-Befehl File>Import Project From File System geladen. Nachdem ich dies getan hatte, stellte ich fest, dass einige der Dateien aus meinem Projekt, die sich im Staging-Bereich befanden, aber keine Änderungen an ihnen vorgenommen hatten und in gitkraken darauf klickten, dass sie unverändert waren (ich konnte jedoch keinen Weg finden, sie zu entfernen sie aus dem Bereich der nicht gesicherten Dateien). Wenn Sie versuchen, diese Dateien auf die Bühne zu bringen, blinkt das klickende Handsymbol als rotes Blockiersymbol, und nichts anderes passiert.

Ich habe versucht, die Inszenierung und schieben diese manuell in den cli „Geister ändern“, und diese Ausgabe erhalten:

➜ myproject git:(master) git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 
Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

     modified: .classpath 
     modified: .project 
     modified: some-query.sql 

no changes added to commit (use "git add" and/or "git commit -a") 
➜ myproject git:(master) git add .classpath .project some-query.sql 
➜ myproject git:(master) git commit .classpath .project some-query.sql 
... 
<some git commit text> 
... 
➜ myproject git:(master) git push -u origin master 
Password for 'https://[email protected]': 
.... 
<some git push success text> 
.... 

jedoch diese Dateien im „unstaged Dateien“ Bereich erscheinen nach wie vor.

Wenn irgendjemand eine Idee hat, was hier vor sich geht, würden wir uns freuen. Danke :)

+0

Ich sehe eine 'git add', aber keine' git commit'. – o11c

+0

Aktualisiert die Frage, um zu zeigen, dass das Festschreiben nicht das Problem verursacht, dass die Dateien im Bereich "nicht gepackte Dateien" von gitkraken UI weiterhin * hängen * sind. – lampShadesDrifter

Antwort

0

Ich glaube, Sie müssen nur die Dateien zu begehen.

git commit -m "adding .classpath, .project, and some-query.sql modifications" 

Informationen über den Unterschied zwischen dem Arbeitsverzeichnis nachschlagen, der Index und dem Repo (es gibt einen vierten Bereich, die so genannte versteck, als auch). Wenn Sie die Bühne verschieben, verschieben Sie nur Dateien und wechseln aus dem Arbeitsverzeichnis in den Index. Um diese Änderungen in Ihren Repo zu übernehmen, müssen Sie sie festschreiben, was nur die Dinge im Index festschreibt, nicht die Änderungen nur im Arbeitsverzeichnis.

Also zuerst waren die Änderungen nur in Ihrem Arbeitsverzeichnis. Nach git add <files> wurden sie im Index bereitgestellt, aber nicht festgeschrieben. Nach git commit oder git commit -m "<message>" werden sie in ein neues Commit in Ihrem lokalen Repo verschoben. Es ist nur an diesem Punkt, dass Push alles tun wird, weil Push nur Commits (und Referenzen) von lokalen zu Remote-Repos verschiebt, es berührt nicht das Arbeitsverzeichnis oder den Index.

+0

Danke für diese Erinnerung. In jedem Fall bleiben selbst nach der Übergabe die Dateien im Bereich "nicht gesicherte Dateien" der Benutzeroberfläche von gitkraken erhalten, die nicht verschwinden und zeigen, dass die Datei "keine Änderungen" aufweist. Aktualisierte Frage, um Änderungen widerzuspiegeln – lampShadesDrifter

+0

@lampShadesDrifter Interessant - also gibt es etwas, das Git in den Dateien in seinen Vergleichsroutinen als unterschiedlich betrachtet, aber sobald es in die diff-Ausgabe übersetzt wird, sind diese Änderungen nicht mehr vorhanden. Könnte es eine Unix vs. Windows-Endzeile oder etwas ähnliches sein? Können Sie die Datei von einem früheren Commit speichern, den aktuellen Commit auschecken und dann einen direkten Vergleich mit den 2 Dateien durchführen? Möglicherweise möchten Sie das Verhalten der Endzeile ändern (z. B. das Flag immer mit Unix auschecken und mit Unix-Endzeilen festschreiben), 1 oder 2 Mal neu versenden und prüfen, ob es sich nicht mehr ändert. – LightCC

+0

Mehr oder weniger - müssen herausfinden, was Git denkt, ist anders im Repo vergleichen mit, nachdem es in das Arbeitsverzeichnis extrahiert wurde. – LightCC

Verwandte Themen