2010-01-04 3 views
7

Ist es möglich, bestimmte Dateien in git nur für bestimmte Fernbedienungen zu ignorieren? Ich speichere beispielsweise AWS S3-Anmeldeinformationen (s3.yml) in einer Datei für eine auf Heroku gehostete App. Daher muss ich in meinem Repo nach s3.yml suchen, damit die Bereitstellung funktioniert. Allerdings möchte ich die Quelle auch auf GitHub veröffentlichen, daher wäre es klug, s3.yml aus dem Repo herauszuhalten. Ich könnte mir vorstellen, dass es so etwas wiegit-ignorierende Dateien auf Remote-Basis?

#.gitignore 
github:config/s3.yml 

funktioniert, aber nichts in der git docs gefunden haben. Ist das möglich? Oder muss ich zwei separate Repos pflegen?

Danke!

Antwort

3

Diese Datei wird immer im Repo gespeichert, wenn Sie sie so veröffentlichen wie sie ist. Selbst wenn Sie eine Verzweigung erstellen und die Datei git-rm'n würden, wären die Leute immer in der Lage, die Version zu überprüfen, in der die Datei noch vorhanden war. Ich sehe keine Möglichkeit, ein einzelnes Repository zu verwenden, während eine einzelne Datei für eine entfernte Einheit nicht zugänglich ist.

Das Kernproblem besteht darin, dass jedes Repository als verteiltes SCM über eine vollständige Revisionshistorie verfügt. Da die Änderungslisten basierend auf ihrem Inhalt kryptographisch signiert sind, ist es nicht möglich, eine Datei zu löschen, ohne den Hash jeder Änderungsliste bis hin zu dem Zeitpunkt, zu dem die Datei hinzugefügt wurde, zu ändern. Dies ist etwas, was Git tun kann, aber an diesem Punkt haben Sie zwei separate Repositories, die nicht direkt/einfach Push/Pull sein können.

+0

Ich irgendwie so erwartet. Ich habe nur gehofft, dass die Jungs es für uns erledigt haben - sie sind verdammt hell, immerhin: D – trydionel

3

Heroku hat Config-Vars für diese Art von Sache. Ihre Meinung scheint zu sein, dass die s3-Informationen nicht in Git einchecken sollten. Check out this link für weitere Informationen darüber, wie sie diese Art von Sache erwarten.

+0

Toller Link - das hatte ich vorher nicht gesehen. Es wird sicherlich auf den Beispielfall geachtet! – trydionel