Schließen Sie bestimmte Dateien aus, wenn Sie auf ein bestimmtes Git-Repository zugreifen

8

Ist es möglich, bestimmte Dateien (* .ai, * .psd) auszuschließen, wenn Sie mit Git auf bestimmte Repositories zugreifen?

Mein Bedarf besteht darin, Git für die Versionskontrolle und die Bereitstellung von Heroku zu verwenden. Wenn ich meine Grafikelemente in die Bereitstellung einbeziehe, ist die Größe des Slugs größer als gewünscht. Allerdings muss ich alle Projektdateien in mein Haupt-Repository github einbeziehen.

    
Kevin Sylvestre 19.03.2010, 17:07
quelle

3 Antworten

12

Der einfachste Weg, Ihr tatsächliches Problem zu lösen, ist die Erstellung einer .slugignore -Datei im Stammverzeichnis des Repositorys, in der Dateien aufgelistet sind, die nicht in den Slug gepackt werden sollen.

John Topley 20.03.2010, 11:02
quelle
4

Sie können eine zweite Verzweigung für die Bereitstellung bei Heroku einrichten, die keine dieser Dateien enthält, aber immer noch vom Master zusammengeführt wird. (Natürlich müssen Sie ein System für die Auflösung der Zusammenführungskonflikte erarbeiten, die Sie bekommen, wenn Sie die .ai und .psd Akten im Meister ändern).

Das Spezifische, was Sie fragen, ist unmöglich, aus dem einfachen Grund, dass Sie beim Push die genauen Commits von einem Repository zu einem anderen transferieren, und zwei Commits, die nicht den gleichen Baum haben, sind per Definition verschiedene Commits. p>

Tipp: Die neuesten Versionen von git haben eine --porcelain -Option für git status , was es leicht macht, Informationen wie "M file1" "DU file2" zu analysieren (modifiziert bzw. nicht zusammengefügt / gelöscht von uns). Sie könnten einen Git-Merge-Wrapper für Ihren Deployment-Zweig schreiben, der die Zusammenführung versucht und automatisch die erwarteten Konflikte bereinigt:

%Vor%

(Der Grund, warum ich $NF anstelle von ausgedruckt habe, ist, dass wenn die Datei umbenannt wird, sie wie "DU original_name - & gt; neuer_name" aussieht und die Kopie in der Arbeitsbaumstruktur nicht neu ist ursprünglicher_name.)

Natürlich könnte das Skript in Ihrer Situation komplexer werden - Sie könnten nur nach bestimmten Erweiterungen suchen (fügen Sie sie dem einschränkenden awk-Muster hinzu), oder Sie können sogar die gesamte Ausgabe in einem Perl-Skript erfassen, so dass Sie einfach etwas tun können mehr Phantasie Logik ...

    
Cascabel 19.03.2010 17:25
quelle
3

Es gibt keinen direkten einfachen Weg, dies zu tun. Es ist sicherlich überschaubar, aber mit einer Menge Schmerzen (git war nicht dafür ausgelegt).

Es wäre wahrscheinlich einfacher, wenn Sie Heroku bitten würden, einige Dateien von der Bereitstellung auszuschließen.

    
hasen 19.03.2010 17:29
quelle

Tags und Links