2016-03-25 4 views
0

Mein Projekt enthält eine Datei, die die Datenbankverbindung und den privaten API-Schlüssel enthält. Für andere, die mein Projekt verwenden, wird diese Datei benötigt, aber sie sollten natürlich keinen Zugriff auf meinen privaten API-Schlüssel erhalten.Überspringt eine Datei, bleibt aber Teil des Repositorys

Was wäre der beste Weg, dies zu bewältigen? Laden Sie die anonymisierte Datei einfach einmal in github hoch und nehmen Sie sie nicht in mein Repository auf. Oder gibt es eine bessere Möglichkeit, eine lokale Datei mit dem privaten Stuff und einer anonymisierten Online-Version zu erstellen?

Gabrie

+2

Ihr privater Schlüssel sollte in einer separaten Datei gespeichert werden, die von Ihrem Projekt * referenziert wird, nicht im Projekt selbst. – chepner

+1

Im Allgemeinen sollte der Schlüssel (oder die Datei, die den Schlüssel enthält), die für die Verbindung mit der Datenbank benötigt wird, eine Konfigurationsoption sein. – chepner

Antwort

1

Eine Möglichkeit, darüber zu gehen ist eine anonymisierte Version Ihrer Datei hinzuzufügen und zu begehen, dann geben Sie den folgenden Befehl ein:

git update-index --assume-unchanged <file> 

(siehe Dokumentation für git-update-index.)

Git wird dann alle Änderungen an dieser Datei ignorieren, so dass Sie Ihre privaten Sachen hinzufügen können und nicht zum Index hinzufügen und aus Versehen begangen werden.

Der Nachteil ist natürlich, dass dies nur Auswirkungen auf Ihr lokales Repository hat. Andere Entwickler, die an Ihrem Projekt arbeiten, würden diese Datei weiterhin auf Änderungen überwachen, sofern sie nicht denselben Befehl in ihrem eigenen lokalen Repo ausführen.

Es ist auch ein bisschen fummelig, da, wenn man etwas in dieser Datei ändern möchten, und diese Änderungen begangen haben, werden Sie den umgekehrten Befehl ausführen müssen:

git update-index --no-assume-unchanged <file> 

Und stellen Sie sicher, zu begehen Nur nicht-private Änderungen (entweder zeitweise dein privates Zeug entfernen oder interaktives Hinzufügen), nach denen du den ursprünglichen Befehl noch einmal ausführen willst, um Git weitere Veränderungen wieder bewusst zu machen.

Verwandte Themen