Ich habe ein Remote-Repo, in dem ich bestimmte Dateien festschreiben möchte (die kompilierten Dateien, um sie auf einer Cloud-Computing-Plattform bereitzustellen), aber ich möchte sie nicht auf Github bereitstellen ...
Gibt es eine Möglichkeit, verschiedene Gitignore-Dateien zu verwenden, eine für jede Fernbedienung?
Antworten:
Dies ist in Git's Modell nicht wirklich sinnvoll. Commits enthalten Dateigruppen. Alle .gitignore-Dateien weisen die Benutzeroberfläche an, keine Dateien automatisch hinzuzufügen, die bestimmten Mustern entsprechen. Dies würde effektiv bedeuten, parallele Sätze von Commits zu haben, die fast gleich sind, aber nur eine Teilmenge der Dateien enthalten.
Dies wäre mit einem Verzweigungsschema möglich, bei dem Sie einen "Bereitstellungs" -Zweig haben, der sich vom Master abspaltet und derselbe ist, aber die zusätzlichen kompilierten Dateien enthält. Dies könnte sogar mit Git-Hooks automatisiert werden, um die Dateien automatisch zu kompilieren und dem Repo hinzuzufügen. Ich stelle mir eine Struktur wie diese vor:
Das heißt, jedes Mal, wenn ein bestimmter Server ein neues Commit für den Master erhält, erstellt er das Projekt, fügt die erstellten Dateien einem neuen Commit von D hinzu und schreibt dies an den Bereitstellungszweig fest - der dann nicht an Github übertragen werden muss.
quelle
Ich finde einen Weg, dies zu tun.
In meinem Fall musste ich das Projekt mit Heroku und Github (als öffentliches Repo) synchronisieren.
Einige Dateien mit privaten Informationen waren jedoch nicht interessant, um in einem öffentlichen Repository freigegeben zu werden
Normalerweise hat ein einfaches Projekt die folgende Ordnerstruktur
Ich habe eine weitere Ebene hinzugefügt und darin ein weiteres Git-Repository mit einem Gitignore erstellt, der einige Dateien aus meinem Projekt weglässt.
Dies ist also kein Git-Repository mit zwei Remote-Repositorys mit unterschiedlichen Gitignores.
Es gibt zwei verschiedene Repositorys.
Im Innersten schließe ich nur die von der IDE generierten Dateien und einige zur Laufzeit generierte Dateien aus.
Auf der äußersten Ebene schließe ich alle Dateien aus, die nicht veröffentlicht werden können.
quelle
Eine weitere Option sind Git-Submodule .
Dies kann nützlich sein, wenn Sie beispielsweise möchten, dass sich Ihr Code und Ihre Dokumentation in zwei verschiedenen Repos mit unabhängiger Zugriffskontrolle usw. befinden. Sie haben also insgesamt 3 Repos, ein Submodul-Repo für Dokumente, ein anderes für Code und das " master "(kein Git-Submodul) Repo, das beides enthält (für den Pypi-Upload vielleicht). Dies ist eine gute Möglichkeit, ein CS-Lehrbuchprojekt zu organisieren. Beide Projekte können unabhängig voneinander fröhlich voranschreiten und bei Hauptversionen synchronisiert werden, gesteuert vom Master-Repo-Betreuer.
quelle
Eine automatisierte Lösung für die hier genannten Methoden:
quelle
cd ..; rm -rf temp_folder;
nach dem Drücken. github.com/MichaelDimmitt/publicize_readme/blob/master/… github.com/MichaelDimmitt/publicize_readme/blob/master/…