2016-08-05 14 views
1

Ich habe einige Änderungen an den Konfigurationsdateien vorgenommen, um das Projekt lokal auszuführen, und werde diese niemals an das zentrale Repository senden.Wie man lokale Änderungen in git einfriert

Nun macht dies die Workflow ärgerlich, da diese Änderungen immer vorhanden sind und schränkt mich praktisch Verknüpfungen zu verwenden wie git add . und git checkout . ohne commiting oder jene Änderungen Reseting, und die Änderungen werden durch zufälligen Befehl leicht verloren.

Wie mache ich git, um diese Dateien von jetzt an lokal zu ignorieren? Das erste, was mir in den Sinn kam, war, sie zu ignorieren in .gitignore, aber das übersetzt nur das Problem auf .gitignore selbst, und ich bin besorgt, versehentlich das Repo zu vermasseln.

Wie können diese lokalen Änderungen auf sichere Weise eingefroren werden?

+0

Also, wollen Sie diese Dateien verfolgen, aber sie werden sie nicht zum Remote-Repository geschoben? Stecke sie in '.gitignore', stage und begehe dein' .gitignore'. Erledigt. Sie müssen sich nicht mehr um diese Dateien kümmern. –

+0

'.gitignore' funktioniert nur zum hinzufügen von dateien - seine config-dateien sind vermutlich schon vorhanden, also macht '.gitignore' gar nichts. – AnoE

+0

Das ist auch kein Problem, 'git rm --cached file.log' (hier Datei mit dem tatsächlichen Dateinamen ersetzen), entpacken Sie diese Dateien und fügen Sie sie dann zu Ihrem' .gitignore' –

Antwort

3

Der Weg, dies zu handhaben, ist, die (echten) Konfigurationsdateien aus dem Repository zu entfernen. Sie können die Vorlagenkonfigurationsdateien beibehalten, sodass die Benutzer einige Beispiele haben.

Alternativ können Sie, wenn Sie die Konfigurationsdateien wirklich behalten möchten (sie haben Kennwörter in ihnen?), Ein Verzeichnis für Ihre Konfigurationsdateien erstellen, eine separate Datei pro Umgebung erstellen und sie auf jedem Host symbolisch verknüpfen. Dann fügen Sie den Symlink natürlich nicht zu git hinzu (fügen Sie stattdessen den Symlink zu .gitignore hinzu).

Das Behalten der geänderten Konfigurationsdateien ist ein ständiger Aufwand (denken Sie an git reset --hard ...) und wird Sie auf lange Sicht nicht glücklich machen.

0

Sie können stash verwenden, um Ihre Änderungen beim Hinzufügen oder Übernehmen von Dateien zu verbergen. Wenn die neuen Updates fertig sind, können Sie den Stash auf Ihren Zweig anwenden. Recommended Read

-1

Beschreibung

Wenn Sie git Dateien zu ignorieren, geben Sie diese in .gitignore.

Wenn diese Dateien bereits nachverfolgt werden, müssen Sie sie möglicherweise aufheben, bevor git sie ignorieren kann. Dafür können Sie

git rm --cached <filename>.<extension>

Beispiel

git rm --cached development.log 

Weitere Informationen laufen, wie über Ihre Tracking-Problem zu gehen. Siehe hierzu post.

Nach Anweisung kann

git update-index --assume-unchanged <file> 

git der Unterstützung wird die Datei nicht sehen, wie geändert, und nicht versuchen, zu begehen (und damit drücken)

+0

Hast du die Frage überhaupt gelesen? Ihr Vorschlag macht das Gegenteil von dem, was OP gefragt hat. – Vampire

+0

Ich habe die Frage gelesen. Er fragte, wie man Dateien lokal ignorieren könnte. Das obige beschreibt, wie man sie lokal ignoriert. Das Problem, dem es gegenübersteht, Dateien im "modifizierten" Zustand zu halten, ist nicht leicht zu vermeiden, da der ganze Zweck der Versionskontrolle darin besteht, die von Ihnen vorgenommenen Änderungen zu kontrollieren ... Vielleicht könnten Sie eine andere Lösung hinzufügen, um sein Problem zu lösen? –

+0

Nein, weil es keine Lösung außer der von AnoE vorgeschlagenen gibt, daher habe ich sie upvotiert. Sie haben vorgeschlagen, dass er die Dateien einfach aus dem Repository löscht, während er sagt, dass er die Dateien im Repository behalten muss, daher meine Bitte, dass Sie die Frage nicht vollständig gelesen haben. ;-) – Vampire

Verwandte Themen