Git Submodule Sheets

git clone <url> --recursive

Creare un submodule in un momento esistente repo

Se si desidera aggiornare il percorso del submodule (cioè dove il submodule saranno memorizzati sul tuo locale clone uso

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

si Prega di notare che questo cambierà l’entrata in .,gitmodule e potresti non volerlo impegnare e la maggior parte delle volte userai solo git submodule update --init poiché sarà più coerente con SCM

Elimina il sottomodulo inutilizzato

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

Assicurati di controllare lo stato del sottomodulo una volta rimosso.

Controlla lo stato dei sottomoduli

I sottomoduli Git stanno effettivamente utilizzando il commit rev di un altro repository e dovrai spingere queste modifiche al repository principale se vuoi aggiornarle.,

Questi sono provati quando si estrae l’impianto idraulico del rev che punta al sottomodulo

$ 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

Tirare un sottomodulo dopo la clonazione di un repository

# 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

Aggiornare l’url del repository .git / config da .gitmodules anche

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

Verifica un ramo specifico sul sottomodulo

Per impostazione predefinita il sottomodulo verificherà il rev specifico di un repository durante il periodo di commit al repository principale. Se vuoi usare un ramo nel sottomodulo (ad esempio rami stabili) dovrai aggiungere un ramo .,gitmodules file e usa

git submodule update --remote

Se non hai specificato alcun ramo e hai usato--remote recupererà automaticamente il ramo principale. Se si sta sviluppando il submodule come ben si può usare --merge o --rebase convenienza

in via di Sviluppo In Submodule

È possibile utilizzare una speciale push-se si desidera aggiornare il vostro submodule principale repo

Inoltre è possibile utilizzare un 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

Infine è possibile utilizzare questi alias per migliorare il vostro flusso di lavoro

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *