git clone <url> --recursive
skapa en undermodul i en befintlig repo
om du vill uppdatera sökvägen till undermodulen (dvs. där undermodulen kommer att lagras på din lokala klon användning
git submodule init
git mv oldpath/submodule newpathsubmodule
git submodule update
Observera att detta kommer att ändra posten i undermodulen.. – herr talman!,gitmodule fil och du kanske inte vill begå det och för det mesta kommer du bara att använda git submodule update --init
eftersom det kommer att vara mer konsekvent med SCM
ta bort oanvända Undermodulen
Remove referencing lines in .gitmodules
Remove referencing lines in .git/config
rm -rf submodule-dir/
git add
git commit -m "removing submodule"
se till att kontrollera submodule status en gång bort.
kontrollera undermoduler status
Git undermoduler faktiskt använder commit rev av ett annat förråd och du kommer att behöva driva dessa ändringar till din huvudsakliga repo om du vill uppdatera dem.,
dessa bevisas vid kontroll av VVS av rev som pekar på undermodulen
$ 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
dra en undermodul efter kloning av ett förråd
# 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
uppdatera förvaret url på .git / config från .gitmodules också
git submodule sync # Adding --recursive here will also update the submodule's submodule if it exists
kassan en specifik gren på undermodulen
som standard DIN undermodulen kommer att kolla in den specifika rev av ett förråd under tiden för dess begå till huvudarkivet. Om du vill använda en gren i undermodulen (till exempel stabila grenar) måste du lägga till gren på .,gitmodules fil och använda
git submodule update --remote
om du inte ange några grenar och används --remote
det kommer automatiskt hämta master gren. Om du utvecklar undermodulen också kan du använda antingen --merge
eller --rebase
som bekvämlighet
utveckla i Undermodulen
Du kan använda ett speciellt tryck om du vill uppdatera undermodulen från din huvudsakliga repo
Du kan också använda en 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
slutligen kan du använda dessa alias för att förbättra ditt arbetsflöde