Ich habe endlich einen großen Schritt gemacht, indem ich SVN für Git aufgegeben habe und es geliebt habe. Es muss irgendwo sein, aber ich kann nicht wirklich herausfinden, wie man das macht, gitosisfreundlich.
Ich habe meine Repo-Site auf einem Remote-Computer gespeichert. Ich schiebe meine Arbeitskopie und ziehe diese Daten auf eine Produktionsmaschine. Ein Hauptunterschied ist jedoch 'eine' Datei: database.yml, die sich nie auf der Produktionsmaschine ändern wird.
Ist es möglich (und wenn ja, wie), wenn die Daten aus dem Repo gezogen werden, nur diese Datei zu "ignorieren"? Ich tue dies manuell an diesem Punkt, aber etwas Eleganz würde am meisten geschätzt werden.
Danke.
Mein Rat: Bring es nicht einmal in git. Mache ein database.yml.skel
oder etwas ähnliches, so dass ein Benutzer sein eigenes database.yml
modellieren kann, wenn man dies als Beispiel betrachtet. Meiner Meinung nach gehören conf-Dateien jedoch nicht in die Versionskontrolle - genau aus dem Grund, den Sie erwähnen.
Ignorieren ist sehr einfach: Tatsächlich gibt es mehrere Möglichkeiten, dies zu tun. Das richtige für dieses ist .gitignore
file; ein anderer ist .git/info/excludes
. Einzelheiten hierzu finden Sie .
Also, von meinem Kopf:
%Vor%Ja, das ist möglich.
git update-index --skip-worktree FILENAME
oder
git update-index --assume-unchanged FILENAME
wo FILENAME wäre config/database.yml
für Ihren Fall.
Wenn Sie den zweiten Befehl verwenden (annehmen-unverändert), werden die Dateien nach git reset
command wiederhergestellt.
Wenn "database.yml" zu Ihrem Git Repo hinzugefügt wurde, bevor Sie es in der Ignorierdatei angegeben haben, müssen Sie es entfernen:
%Vor%Dann fügen Sie die Datei "database.yml" in Ihrem Projekt hinzu, funktioniert problemlos.
Das Entfernen der Datei "database.yml" ist nicht sinnvoll, wenn die Anwendung von anderen Benutzern heruntergeladen und installiert werden soll. Wenn Sie Ihre Anwendung mit einfachen Benutzern installieren, ist das Entfernen der Datei ein schwacher Schritt. Wenn git angegeben wird, die Datei nach dem Hinzufügen mit Standardwerten zu ignorieren, ist dies in diesem Fall der richtige Weg.