2012-03-28 2 views
1

Ich habe eine Datenbankkonfigurationsdatei, database.yml, die in Git sein muss, weil meine Clients Serverklone das gesamte Repo für Tests erstellen.Git - Wie fügt man gleichzeitig eine Datei zu .gitignore hinzu und behält sie trotzdem in Git/dem Remote Repo?

Allerdings habe ich auch eine Kopie dieser Datei auf meinem lokalen Rechner für die Entwicklung, das Problem ist, ich möchte Änderungen an diesem lokal vornehmen und git diese Änderungen ignorieren, dh die Änderungen am Repo nicht festschreiben, wenn Änderungen vorgenommen werden überschreiben Sie es nicht/geben Sie mir Ärger darüber, dass es anders ist, wenn ich eine Pull-Anfrage ausstelle.

Weiß jemand, wie dies erreicht werden kann? Vielen Dank!

Antwort

4

Sie sollten Ihre echten Datenbankanmeldeinformationen nicht in die Versionskontrolle aufnehmen. Kopieren Sie die Datei "database.yml" in "database.yml.example" mit einem leeren Benutzernamen/password und fügen Sie ".gitignore" "database.yml" hinzu. Kopieren Sie jedes Mal, wenn Sie klonen, database.yml.example in database.yml und legen Sie die spezifischen Datenbankanmeldeinformationen der Installation in die Datei "database.yml". Wenn Sie nicht möchten, dass Sie Ihre Produktionsumgebung bei jeder Bereitstellung neu einrichten müssen, verwenden Sie etwas wie Capistrano, mit dem Sie Dinge wie Konfigurationsdateien zwischen den Deploys behalten oder ein eigenes Skript schreiben können, das eine Verbindung zu einem Persistent herstellt database.yml außerhalb des Bereitstellungsverzeichnisses.

Sie können auch git update-index --assume-unchanged config/database.yml verwenden, damit Git lokale Änderungen an dieser Datei ignoriert, aber Sie sollten dies nicht tun. Die richtige Lösung besteht darin, Ihre echten Datenbank-Anmeldeinformationen aus Git herauszuhalten.

Verwandte Themen