2010-11-19 5 views
5

Das ist frustrierend und ich kann einfach nicht die richtige Antwort finden, wie man damit umgeht. Ich bin nach einem Rebase [aber dies ist nur eines von vielen Szenarien, in denen dieses Problem auftritt] und ich habe eine Tonne von Dateien "geändert, aber nicht aktualisiert", die keinen Unterschied haben, aber für die Newline-Zeichen.Wie man nicht gestartete Änderungen [Newline Zeichen Unterschied] in Git?

git diff -b 

nichts zurückgegeben.

Jetzt möchte ich nur die Änderungen entfernen und Dateien so lassen, wie sie im Repo sind. Ich habe viel von "Lösungen" gefunden:

1 stashing ändert
a) mit --keep-Index [dies war eigentlich von SO]

$ git stash save --keep-index 
Saved working directory and index state WIP on COM-23: 4a8abc1 COM-23 changed pa 
ckage name 
HEAD is now at 4a8abc1 COM-23 changed package name 

$ git stash drop 
Dropped refs/[email protected]{0} (7d822e3c6bdc310f4a4be90ed937dd0ea97df627) 

$ git status 
[tons of files marked as changed but not updated] 

b) ohne --keep-Index
genau das gleiche wie bei 'a'

2 GIT zurückgesetzt
a) nur ein Reset

git reset --hard HEAD 

wie oben

b) mit

git add -A 
git reset --hard HEAD 

wie oben

3 Kasse

git checkout 

wie oben hinzufügen, Status gibt eine Menge unstaged Dateien.

Ich bin mir ziemlich sicher, dass ich etwas falsch mache oder das Problem einfach missverstand, aber alles, was ich tun will, ist die losgelösten Veränderungen loszuwerden! Wie kann ich das tun?

Danke, Krystian

+4

Check out 'git config-core.autocrlf'. Am besten ist es auf 'false' zu ​​setzen. Nach dem Ändern dieses Werts benötigen Sie möglicherweise noch ein 'git reset --hard ', da Sie die Einstellungen für die Editor-Zeilenumbrüche mit denen von Git synchronisieren müssen. –

+0

Das ist es! Stellen Sie es als eine Antwort und ich werde es glücklich markieren, wie ich glaube, dass ich nicht der einzige bin, der dieses Config-Element gebrochen hat! – Krystian

+0

getan. Froh, dass ich helfen konnte. –

Antwort

9

prüfen git config [--global] core.autocrlf aus. Am besten ist es auf false eingestellt. Möglicherweise benötigen Sie nach dem Ändern dieses Werts noch eine git reset --hard, da Sie die Einstellungen für die Editor-Zeilenumbrüche mit denen von Git synchronisieren müssen.

0

Verwenden Sie den Git Stash, wenn Sie den aktuellen Status des Arbeitsverzeichnisses und des Indexes aufzeichnen möchten, aber in ein sauberes Arbeitsverzeichnis zurückkehren möchten. Der Befehl speichert Ihre lokalen Änderungen und entfernt das Arbeitsverzeichnis so, dass es dem HEAD-Commit entspricht.

Tun Sie dies.

git stash save --keep-index 

und wenn Sie wollen, dass diese entfernen Änderungen fallen vollständig dann das Versteck

git stash drop 
Verwandte Themen