Ich arbeite manchmal mit Codeigniter, und nachdem ich die Entwicklung auf der lokalen Site fertig bin, muss ich die Dateien auf den Server migrieren. Alle Dateien im Ordner /config/
müssen geändert werden, damit sie mit den Servereinstellungen übereinstimmen. Es ist nicht richtig, ein komplettes Commit für diese Änderungen zu machen. Muss ich Git einfach dazu bringen, diese Dateien komplett zu ignorieren, oder gibt es eine Möglichkeit, diese Änderungen zu verfolgen und sie im richtigen Moment mit Git anzuwenden?Was ist der richtige Weg, um eine "Version für den Server" zu erhalten - mit nur Konfigurationsdateien geändert, in Git?
Antwort
Sie könnten immer versioniert:
- zwei „Wert Konfigurationsdateien“, mit den richtigen Werten für jede Umgebung
- eine Vorlage Konfigurationsdatei mit dem Wert Platzhalter in ihm (zum Beispiel
@@[email protected]@
) - ein Skript generiert die tatsächliche Konfigurationsdatei in Abhängigkeit von der aktuellen Umgebung
- eine content filter driver die beim Auschecken wird das Skript auslösen, um das Rig zu generieren HT Konfigurationsdatei.
Hinweis: die Vorlage Konfigurationsdatei vermutet hat einen erkennbaren Inhalt (die Filter haben keinen Namen oder den Pfad der Datei). Siehe "Git equivalent of subversion's $URL$
keyword expansion" für mehr über die Begrenzung des Git Content Filtertreibers.
Es hängt von Ihren Bedürfnissen ab. In meiner Firma benutzen wir andere Annäherung. Wir haben verschiedene Umgebungen geschaffen (wo der Stern ist interner Projektname):..
- Entwick - Website auf Domain läuft ** local.com *
- Test - Website läuft auf Domäne Test *. company.com
- beta -.. beta * company.com
- Produktion - jede andere Domäne.
Basierend auf dem Domain-Namen wechseln wir automatisch Konfigurationen. Basicly config-Datei wie folgt aussieht:
<?php
return array(
'_env' => array(
'devel' => array(
// config for devel
),
'production' => array(
// config for production
)
)
);
?>
Einige Rahmen (AFAIR Zend), um die Umgebungsnamen in Virtual Host config (oder .htaccess) gesetzt. Sie sollten sich ansehen: zend framework auto switch production staging test .. etc
Haben Sie sich CI-Dokumentation angesehen? Es gibt eine section darüber.
Erstellen Sie zwei Ordner im Ordner config
. Einer heißt development
und der andere ist production
. Kopieren Sie nun config.php, database.php usw. in jeden dieser Ordner. Wenn Sie sich jetzt auf dem Produktionsserver befinden, überprüft CodeIgniter zuerst den Ordner production
für die Dateien. Wenn es nicht vorhanden ist, wird die Standarddatei im Ordner config
verwendet. Wenn Sie sich in der Entwicklungsumgebung befinden, überprüft CodeIgniter zuerst den Ordner development
.
Wenn Sie möchten, dass eine Konfigurationsdatei mit der Produktions- und Entwicklungsumgebung identisch ist, behalten Sie sie im Ordner config
.
Wenn Sie die Umgebung fügen Sie dann den folgenden Code in .htaccess-Datei festlegen möchten:
#This code for Development Environment
SetEnv CI_ENV development
und
#This code for Production Environment
SetEnv CI_ENV production
- 1. Was ist der richtige Weg, um diese Informationen zu erhalten?
- 2. Was ist der richtige Weg, um den Resource Server und den Authorization Server zu trennen?
- 3. Was ist der richtige Weg, um den Fall zu vergleichen?
- 4. Was ist der richtige Weg, um den Operator == für eine Klassenhierarchie zu überladen?
- 5. Was ist der richtige Weg, um für HTML-Elemente eine Begrenzungsbox relativ zum Fenster zu erhalten?
- 6. Was ist der richtige Weg, um eine ListBox zu laden?
- 7. Was ist der richtige Weg, um eine Bildunterschrift mit html5
- 8. Was ist der richtige Weg, um eine QList zu initialisieren?
- 9. Was ist der richtige Weg, um eine Annotation für den DECIMAL-Typ in Doctrine2 zu definieren?
- 10. Was ist der richtige Weg, um in Rails zu zählen?
- 11. Was ist der richtige Weg, um eine Datei mit CUploadedFile
- 12. Was ist der richtige Weg, um Montageversion zu behandeln?
- 13. Was ist der richtige Weg, um Codesniffer zu Aptana Studio Standalone-Version zu installieren?
- 14. Was ist der richtige Weg um umzuleiten?
- 15. Was ist der richtige Weg, um zwei Int-Werte zu teilen, um einen Float zu erhalten?
- 16. Was ist der richtige Weg, Testbereiche um Ausnahmen zu gruppieren
- 17. Lucene: Was ist der richtige Weg, um eine Suche abzubrechen?
- 18. Was ist der richtige Weg, um den "in" -Operator zu verwenden, um ein Histogramm zu erstellen?
- 19. Was ist der richtige Weg, um eine Sicherung von Azure zu erhalten?
- 20. Was ist der richtige Weg, um Berechtigungen zu adressieren?
- 21. Was ist der richtige Weg, um FB.Event.subscribe zu behandeln?
- 22. Was ist der richtige Weg, um mit Mongodb-Verbindungen umzugehen?
- 23. Was ist der richtige Weg, um scala.io.Source zu verwenden?
- 24. Was ist der richtige Weg, um einen Standardwert nur für die CREATE-Ansicht zu haben?
- 25. Was ist der richtige Weg um Transienten zu markieren?
- 26. Was ist der richtige Weg, um Inline-Server-Tags in den CSS-Bereich einer Seite einzufügen?
- 27. Was ist der richtige Weg, um Controller-Aktionen zu erstellen?
- 28. Was ist der aktuelle richtige Weg, um Edelsteine zu veröffentlichen?
- 29. Verwenden von Git, um nur die neueste Version zu erhalten
- 30. Was ist der richtige Weg, um benachrichtigt zu werden, wenn die Größe eines Fensters geändert wird?
Sie vielleicht ein git after_deploy Haken schreiben könnte, die das tun würde? – lenswipe