Es scheint ein git Repo innerhalb eines übergeordneten Repo nicht enthalten ist in einem auf der übergeordneten begehen, wenn es Setup als Submodul ist. Ist es möglich, dieses Verhalten zu überschreiben und den verschachtelten Git-Repo wie jedes andere Verzeichnis zu behandeln? Ich möchte mich nicht auf externe Abhängigkeiten durch Submodule verlassen, sondern möchte mit git diese Abhängigkeiten innerhalb des Projekts verwalten.Verschachtelte Git-Repositories ohne Submodule?
Antwort
1/Sie könnten, dass außer Kraft setzen durch:
- entweder eine git config Einstellung: die Umgebungsvariable
$GIT_DIR
Sie definieren Ihr.git
Verzeichnis des verschachtelten Git arbeiten Baum als externen.git
(extern sowohl die nested repo und die Haupt repo) - oder durch verschachtelte repo 'N' außerhalb des Haupt repo Einstellung, aber die Kasse, die 'N' repo innen die Haupt Repo:
core.worktree
den Pfad zur Wurzel des Arbeits Baumes ein. Dies kann durch die GIT_WORK_TREE
Umgebungsvariable und die --work-tree
Befehlszeilenoption
In beiden Fällen außer Kraft gesetzt wird, ist die Idee, eine verschachtelte worktree ohne .git
Unterverzeichnis in ihm zu haben.
2/Bei Submodulen ist das verschachtelte Git Repo nicht wirklich im übergeordneten Repo enthalten.
special entry A wird in der Stammbaum aus der externen Git SHA1 aufzuzeichnen.
new file mode 160000
index 0000000..4c4c5a2
Siehe auch "nature of Git submodules" (dritter Teil der Antwort)
Ihre Methoden 1a und 1b sind perfekt für mich, danke. Ich bin mir sicher, dass dies nicht der empfohlene Ansatz ist, aber ich brauche diese Flexibilität wirklich. Danke für die umfassende Antwort! – stevo
Also keine Option git behandelt verschachtelte .git Verzeichnisse als einfache Verzeichnisse behandeln? –
@Mr_and_Mrs_D nicht, dass ich von – VonC
Siehe auch Are git submodules the only safe way to have working copies within working copies?.
Als ich auf die aktuelle Diskussion stieß, ging es mir um ein anderes Problem als das hier gelöste: git als eine Art Archivierungswerkzeug zu verwenden, das einen Dateisystembaum archivieren könnte, der bereits einige git Arbeitsverzeichnisse hat. Vielleicht ist die andere Frage näher an meinem Problem.
kenne Hier ist ein Tool für mein Problem: http://webcache.googleusercontent.com/search?q=cache:Ffr9y2l0jh4J:eigenclass.org/hiki/gibak-backup-system-introduction+ verschachtelt + git & cd = 2 & hl = de & ct = clnk & gl = ru. Es gibt wahrscheinlich andere ähnliche Werkzeuge. –
oops - defekter Link im Kommentar (den Sie wahrscheinlich löschen und zu Ihrer Antwort hinzufügen sollten) –
Dies ist nicht die eleganteste Lösung, aber es ist erwähnenswert.
Wenn Sie den Ordner, der das Repository enthält, zippen, können Sie das im externen Repository überprüfen.
Dies kann hilfreich sein, da Sie den vollständigen Status einschließlich git reflog
haben.
Sieht so aus als wäre dies die einzige echte Option, zu schlecht fügt es zusätzliche (manuelle) Schritte hinzu ... – nus
fand ich eine andere Methode, die für mich
Wenn Sie git add somefolder/
< scheint zu funktionieren - stellen Sie sicher, Sie haben die /
am Ende, dann wird es alle Dateien hinzufügen, anstatt es wie ein Submodul zur Behandlung.
Mehr wird hier erwähnt: http://debuggable.com/posts/git-fake-submodules:4b563ee4-f3cc-4061-967e-0e48cbdd56cb
Das ist, was ich gesucht habe , aber ich bekomme eine Fehlermeldung, wenn ich versuche, das verschachtelte .git selbst hinzuzufügen: 'Fehler: Ungültiger Pfad 'test/data/fixtures/clean/.git/COMMIT_EDITMSG' Fehler: Test/Daten/Fixtures nicht hinzufügen/clean/.git/COMMIT_EDITMSG zu indexieren fatal: Hinzufügen von Dateien fehlgeschlagen 'Es scheint mit den eigentlichen Dateien obwohl arbeiten, danke, es ist ein Start – nus
Ich habe gesehen, wo Menschen einen verschachtelten' .git' Ordner zu '.checkout_git umbenennen 'https://blog.gopheracademy.com/advent-2015/go-in-a-monorepo/ Und benennen Sie es zurück, als wie benötigt –
- 1. Git-Submodul innerhalb eines Submoduls (verschachtelte Submodule)
- 2. Git: Submodule rekursiv (verschachtelt Submodule)
- 3. Submodule in Swift
- 4. List Maven externe Abhängigkeiten - ohne Submodule im aktuellen Projekt
- 5. Git Submodule Workflow-Probleme
- 6. Git SourceTree - Uncommitted Submodule
- 7. Git Submodule auf Master
- 8. git implementieren mit Submodule
- 9. Git SubModule Visual Studio
- 10. git Submodule: ln -s
- 11. Teilen Git Submodule
- 12. Racket REPL und Submodule
- 13. Download git Submodule für Tarball
- 14. Kann nicht Tornado importieren Submodule
- 15. Bower + Git Submodule + Docker komponieren
- 16. Submodule in github nicht anklickbar
- 17. JavaScript-Modul Muster/Organisation/Submodule
- 18. Git Submodule vs Nuget Pakete
- 19. git Submodule init auf werker
- 20. Wie Submodule in Github holen
- 21. Andere Submodule importieren & Standard-Lib ignorieren
- 22. Angular2 verschachtelte Komponenten ohne Abhängigkeitsinjektion möglich?
- 23. Wie Inhalt ohne verschachtelte Elemente mit Nokogiri
- 24. Verschachtelte if-else-Verhalten ohne Klammern
- 25. Elasticsearch Rückkehr verschachtelte Objekte ohne ihre Eltern
- 26. Text abschneiden, ohne verschachtelte Verbindung zu treffen
- 27. Git-Klon --mirror mit Submodule nicht funktioniert
- 28. Schleife weiter über Submodule mit dem Befehl "git submodule foreach" nach einem Nicht-Null-Exit
- 29. So initialisieren und aktualisieren Sie angegebene Submodule
- 30. Git-Submodule - bestimmte Dateien/Verzeichnisse ausschließen
Ich bin nicht sicher, ob dies der richtige Weg ist „Räude Abhängigkeiten“, aber ich schlage zwei Möglichkeiten, zu erreichen, was Sie wollen, sowie einige Präzisierungen über die Natur der Submodule in Git . – VonC
Es klingt wie das, was Sie wirklich wollen, ist eine Teilbaumzusammenführung. Das wird Sie mit einem einzigen Repository und einer einzigen Geschichte verlassen. –
Sind Sie sicher, dass ** ein Git-Repo innerhalb eines Parent-Repos nicht in einem Commit für den Parent enthalten ist, es sei denn, es ist als Submodul ** eingerichtet? Weil das ist, was ich will, und wenn du recht hast, dann hat Git das Out-of-the-Box. –