Git Submodule Cheatsheet (Deutsch)

git clone <url> --recursive

Erstellen Sie ein Submodul in einem derzeit vorhandenen Repo

Wenn Sie den Pfad des Submoduls aktualisieren möchten (dh wo das Submodul auf Ihrem lokalen Klon gespeichert wird, verwenden Sie

git submodule init
git mv oldpath/submodule newpathsubmodule
git submodule update

Bitte beachten Sie, dass dies den Eintrag in der ändert .,gitmodule-Datei und Sie möchten sie möglicherweise nicht festschreiben und verwenden die meiste Zeit nur git submodule update --init da sie konsistenter mit dem SCM

Nicht verwendetes Submodul löschen

Remove referencing lines in .gitmodules
Remove referencing lines in .git/config
rm -rf submodule-dir/
git add
git commit -m "removing submodule"

Überprüfen Sie den Submodul-Status nach dem Entfernen.

Überprüfen Sie den Submodulstatus

Git-Submodule verwenden tatsächlich die Commit-Version eines anderen Repositorys, und Sie müssen diese Änderungen an Ihr Haupt-Repo senden, wenn Sie sie aktualisieren möchten.,

Diese werden beim Auschecken der URL des rev nachgewiesen, die auf das Submodul verweist

$ git log bats
commit aa69c87bd96cb6aa0d586b871cfdd4da3abe0d3e
Author: <[email protected]>
Date: Tue Sep 13 23:47:58 2016 +0900 Set up basic BATS test framework$ git cat-file -p aa69
tree b6e54e3e4a1e6aeae3a46d1c296a08dbd2bfd10a
parent e7134d506995dce59a14df8dd8d49a7a2e844a8d
author <[email protected]> 1473778078 +0900
committer <[email protected]>1473783135 +0900$ git cat-file -p b6e54
100644 blob 82520ca123af9986966f282a109093cf39780722 .gitignore
100644 blob c1ddd1345dfd5b028dd16d55ae5f8aed286a019a .gitmodules
100644 blob b3d51add840a46d2590a3809905f0ebb980471f9 README.md
100755 blob 067db410b175787f5621b7737552e5e0558c7a3a Test
160000 commit 03608115df2071fff4eaaff1605768c275e5f81f bats ### Commit from another repository ###
040000 tree cc240386f9cc2546ec383b9d7afc7f432bf70f69 t

Ziehen Sie ein Submodul nach dem Klonen eines Repositorys

# Your repository will have .gitmodules file
cd ~/repository
git submodule update --init # Adding --recursive here will also update the submodule's submodule if it exists

Aktualisieren Sie die Repository-URL auf .git/config “ aus .gitmodules auch

git submodule sync # Adding --recursive here will also update the submodule's submodule if it exists

Checkout einen bestimmten Zweig auf Submodul

Standardmäßig wird Ihr Submodul die spezifische rev eines Repositorys während der Zeit seines Commits zum Haupt-Repository überprüfen. Wenn Sie einen Zweig im Submodul verwenden möchten (z. B. stabile Zweige), müssen Sie einen Zweig hinzufügen .,gitmodules-Datei und verwenden Sie

git submodule update --remote

Wenn Sie keine Zweige angegeben und --remote verwendet haben, wird der Master-Zweig automatisch abgerufen. Wenn Sie auch das Submodul entwickeln, können Sie entweder --merge oder --rebase als Bequemlichkeit verwenden

Entwicklung Im Submodul

Sie können einen speziellen Push verwenden, wenn Sie Ihr Submodul von Ihrem Haupt-Repo aktualisieren möchten

Sie können auch ein foreach-comamand

$ git submodule foreach 'git stash'
Entering 'CryptoLibrary'
No local changes to save
Entering 'DbConnector'
Saved working directory and index state WIP on stable: 82d2ad3 Merge from origin/stable
HEAD is now at 82d2ad3 Merge from origin/stable

Schließlich können Sie diese Alias verwenden, um Ihren Workflow zu verbessern

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.