2014-09-04 6 views
6

Ich habe einen Ordner images der früher verfolgt wurde und den ich nicht zurückverfolgte mit: git rm -r --cached images.Ordner lokal in git entpacken und zur Produktion schieben, ohne zu löschen

Ich habe auch images/ zu meinem Gitignore hinzugefügt. Ich befürchte jedoch, dass der Bilderordner gelöscht wird, wenn ich meinen Produktionsserver festlege und ziehe. Der Grund dafür ist, dass die github-App tatsächlich anzeigt, dass die Dateien gelöscht wurden.

Wie kann ich verhindern, dass lokal gelöschte, dann nicht geteilte und ignorierte Dateien auf dem Produktionsserver unter git pull nicht gelöscht werden?

+0

Vor allem, warum Sie diesen Ordner nicht unter Versionskontrolle haben wollen? – Jubobs

+4

Weil die Leute, die tatsächlich den Inhalt verwalten, den Inhalt des Bilder-Ordners durch FTP und nicht durch Git verändern. Git für das ist Overkill – Ortixx

Antwort

6

Mit git rm --cached werden die Dateien aus git entfernt, obwohl sie sich immer noch in Ihrem lokalen Ordner befinden. Nach Ihnen push, werden die Dateien auf dem Server gelöscht, und so das Repository anderer, wenn sie pull.

Ein besserer Weg ist die Verwendung git update-index.

git update-index --assume-unchanged images/* 

Es sollte Ihre Anforderung erfüllen. Das einzige Problem ist, dass, wenn andere diese Bilddateien ändern und auf den Server git schieben, Sie diese Änderungen immer noch erhalten, wenn Sie pull.

1

Ich habe es tatsächlich anders gemacht. Da es nur zwei Leute gibt, die Git benutzen (mich und einen anderen Entwickler), haben wir die Ordner einfach nur lokal aufgespürt. Ich habe dann die neue .gitignore festgeschrieben und auf den Produktionsserver gezogen. Danach habe ich den Ordner auf dem Produktionsserver nicht mehr gefunden und voila!

0

Eine andere Alternative zu der Ansicht, dass könnte für neue Mitspieler besser sein wird mit dem folgenden in der Zukunft für das Hinzufügen von Verzeichnissen, die erforderlich sind, noch deren Inhalte Weglassen:

**/images/* 
!**/images/readme.md 

Da Git betrifft nicht selbst mit leeren Verzeichnisse, der Trick besteht darin, Git zu sagen, nichts im Verzeichnis images zu verfolgen. Aber um das Verzeichnis an erster Stelle zu erstellen, brauchen wir eine Datei, und am Ende sagen wir "Verfolge nichts in diesem Verzeichnis außer für dieses Read Me".

Verwandte Themen