Aus irgendeinem Grund kann ich nur ein Repository verwenden.
Aber ich habe mehrere Projekte, einschließlich java
Projekte php scripts
und Android
Apps-Projekte.
Jetzt ist mein Problem, ich muss sie in verschiedene Unterordner innerhalb des Repositorys legen.
Ich verwende verschiedene IDEs. Sie wissen, jede IDE kann einen eigenen Arbeitsbereich haben.
Wer kann mir eine bewährte Methode zur Lösung des Problems nennen?
Antworten:
Während die meisten Leute Ihnen sagen, dass Sie nur mehrere Repositorys verwenden sollen, ist es meiner Meinung nach erwähnenswert, dass es andere Lösungen gibt.
Lösung 1
Ein einzelnes Repository kann mehrere unabhängige Zweige enthalten, die als verwaiste Zweige bezeichnet werden . Waisenzweige sind völlig voneinander getrennt; Sie teilen keine Geschichten.
Dadurch wird ein neuer Zweig erstellt, der nicht mit Ihrem aktuellen Zweig zusammenhängt. Jedes Projekt sollte sich in einer eigenen verwaisten Niederlassung befinden.
Aus irgendeinem Grund muss Git nach einer Waisenkasse ein wenig aufgeräumt werden.
Stellen Sie sicher, dass alles festgeschrieben ist, bevor Sie es löschen
Sobald der verwaiste Zweig sauber ist, können Sie ihn normal verwenden.
Lösung 2
Vermeiden Sie den Ärger mit verwaisten Zweigen. Erstellen Sie zwei unabhängige Repositorys und übertragen Sie sie auf dieselbe Fernbedienung. Verwenden Sie einfach unterschiedliche Filialnamen für jedes Repo.
quelle
Lösung 3
Dies dient zur Verwendung eines einzelnen Verzeichnisses für mehrere Projekte. Ich verwende diese Technik für einige eng verwandte Projekte, bei denen ich häufig Änderungen von einem Projekt in ein anderes ziehen muss. Es ähnelt der Idee der verwaisten Zweige, aber die Zweige müssen nicht verwaist sein. Starten Sie einfach alle Projekte aus demselben leeren Verzeichnisstatus.
Starten Sie alle Projekte aus einem festgeschriebenen leeren Verzeichnis
Erwarten Sie keine Wunder von dieser Lösung. Aus meiner Sicht werden Sie immer Ärger mit nicht verfolgten Dateien haben. Git hat nicht wirklich eine Ahnung, was mit ihnen zu tun ist. Wenn also Zwischendateien von einem Compiler generiert und von Ihrer Gitignore-Datei ignoriert werden, bleiben sie wahrscheinlich einige Zeit hängen, wenn Sie versuchen, schnell zu tauschen zwischen - zum Beispiel - Ihrem Softwareprojekt und einem Doktorandenprojekt.
Hier ist jedoch der Plan. Beginnen Sie so, wie Sie Git-Projekte starten sollten, indem Sie das leere Repository festschreiben, und starten Sie dann alle Ihre Projekte aus demselben leeren Verzeichnisstatus. Auf diese Weise sind Sie sicher, dass die beiden Lose ziemlich unabhängig voneinander sind. Geben Sie Ihren Filialen auch einen richtigen Namen und verwenden Sie nicht nur "master". Ihre Projekte müssen getrennt sein, geben Sie ihnen entsprechende Namen.
Git-Commits (und damit Tags und Zweige) speichern im Grunde genommen den Status eines Verzeichnisses und seiner Unterverzeichnisse, und Git hat keine Ahnung, ob dies Teile desselben oder verschiedener Projekte sind. Es ist also wirklich kein Problem, wenn Git verschiedene Projekte im selben Repository speichert. Das Problem besteht dann darin, dass Sie die nicht verfolgten Dateien aus einem Projekt löschen, wenn Sie ein anderes verwenden, oder die Projekte später trennen.
Erstellen Sie ein leeres Repository
Starten Sie Ihre Projekte leer.
Arbeite an einem Projekt.
Starten Sie ein anderes Projekt
wann immer du magst.
Hin und her wechseln
Wechseln Sie zwischen Projekten hin und her, wann immer Sie möchten. Dieses Beispiel geht auf das Schach-Software-Projekt zurück.
Nicht verfolgte Dateien sind ärgerlich
Sie werden sich jedoch über nicht verfolgte Dateien beim Wechseln zwischen Projekten / Zweigen ärgern.
Es ist kein unüberwindbares Problem
Per Definition weiß Git nicht wirklich, was er mit nicht verfolgten Dateien tun soll, und es liegt an Ihnen, mit ihnen umzugehen. Sie können verhindern, dass nicht verfolgte Dateien wie folgt von einem Zweig zum anderen übertragen werden.
Indem wir vor dem Auschecken unseres neuen Projekts sicherstellten, dass das Verzeichnis leer war, stellten wir sicher, dass keine nicht verfolgten Dateien von einem anderen Projekt hängen.
Eine Verfeinerung
Wenn beim Festschreiben eines leeren Repositorys dieselben Daten angegeben werden, können unabhängig erstellte Commits für leere Repositorys denselben SHA1-Code haben. Auf diese Weise können zwei Repositorys unabhängig voneinander erstellt und später in einem Repository zu einem einzigen Baum mit einem gemeinsamen Stamm zusammengeführt werden.
Beispiel
Ergebnis
Unterverzeichnisse pro Projekt verwenden?
Es kann auch hilfreich sein, wenn Sie Ihre Projekte nach Möglichkeit in Unterverzeichnissen aufbewahren, z. B. anstatt Dateien zu haben
haben
In diesem Fall wird Ihre nicht verfolgte Softwaredatei sein
chess/untracked_software_file.prog
. Wenn Sie imthesis
Verzeichnis arbeiten, sollten Sie nicht durch nicht verfolgte Schachprogrammdateien gestört werden, und es kann vorkommen, dass Sie problemlos arbeiten können, ohne nicht verfolgte Dateien aus anderen Projekten zu löschen.Wenn Sie nicht verfolgte Dateien aus anderen Projekten entfernen möchten, ist es außerdem schneller (und weniger fehleranfällig), ein unerwünschtes Verzeichnis zu sichern, als unerwünschte Dateien durch Auswahl der einzelnen zu entfernen.
Zweigstellennamen können '/' Zeichen enthalten
Vielleicht möchten Sie Ihre Filialen so nennen
quelle
Ich würde verwenden
git submodules
.Schauen Sie sich hier das Git-Repository in einem Git-Repository an
Per Februar 2009 würde ich vorschlagen
Monorepos
quelle
git submodule add [url to git repo]
- git-scm.com/book/en/v2/Git-Tools-Submodules