Ich habe eine komplexe Web-Projektvorlage, wo Dateien in drei Kategorien unterteilt werden können. Erstens, Einstellungen, die Dateien betreffen, die auf jedem Server eindeutig sein sollten, werden nicht häufig aktualisiert, aber es wäre schön, sie in der Versionskontrolle zu haben. Zweitens, Entwicklungsdateien, welche die tatsächlichen Dateien sind, die von den Entwicklern codiert wurden und die pro Projekt eindeutig sind und die Hauptdateien sind, die versionskontrolliert werden. Und schließlich, benutzergenerierte Inhalte, die meist Testdaten auf der Stage- und Entwicklungsumgebung sind, aber richtige Daten auf einem Live-Server und idealerweise auch versionskontrolliert sein sollten.Git: "Sub-Projekt" Differenzierung in einer Bühne, Live, Entwicklung Web-Umgebung
Im Stammordner jedes Projekts befindet sich eine Einstellungsdatei, die Teil der ersten Gruppe ist. Dann gibt es drei Ordner mit Entwicklungsdateien und schließlich einen Ordner mit Bildern für die Website sowie von Benutzern erstellte Dateien.
Was ich versucht habe:
ich nicht den gesamten Ordner verwenden kann, wie ich dann die gleichen User Generated Content auf lokalen Live und Bühne haben würde und die Einstellungen neu zu justieren hat Dateien jeweils Zeit dränge ich von Lokal zu Bühne und von Bühne zu Bühne.
Ich habe versucht, mit dem Master-Zweig für die Entwicklungsdateien, und einen separaten Zweig für Benutzer generierte Inhalte und Einstellungen Dateien, und dann drücken Sie den Master von lokalen zu Bühne usw. Aber wenn ich einen Checkout auf der Bühne löscht es die nicht verwandten Dateien.
Ich habe versucht, separate Zweige für die Entwicklung, benutzergenerierte Inhalte und Einstellungen zu machen, und dann nach Push-to-Bühne nur alles in Master zu verschmelzen. Das Problem tritt in diesem Fall auf dem lokalen Dev-Server auf, wo der Commit-Prozess leicht verworren wird: checkout dev; füge geänderte Dateien hinzu; commit dev; Kasse Master; merge dev ugc einstellungen. Ich bin auch besorgt, dass einige der UGC-Dateien in diesem Fall verloren gehen.
Die große Frage
Kann mir jemand eine neue Lösung oder etwas vorschlagen, den aktuellen Lösungen hinzuzufügen, um sie möglich zu machen? Leider kann ich keine separaten Ordner verwenden, da das verwendete Framework (ein privates) dies nicht erlaubt.
Das funktioniert ganz gut, aber ich kann nicht die Einstellungen-Datei ignorieren richtig funktionieren. Ich habe versucht, eine Zeile mit einem * in, gefolgt von einer Zeile mit '!/Your_project/settings-file' in der .gitignore, aber es erlaubt mir nicht, die Einstellungsdatei ohne die Kraft hinzuzufügen. –
Versuchen Sie es ohne den führenden Schrägstrich: '! Your_project/settings-file' – Amber
(Auch im schlimmsten Fall können Sie es einfach beim ersten Mal erzwingen - sobald es hinzugefügt wird, wird Git es unabhängig vom' .gitignore' verfolgen .) – Amber