git clone <url> --recursive
Opret en submodule i en eksisterende repo
Hvis du ønsker at opdatere vejen i submodule (dvs hvor submodule, vil blive lagret på dit lokale klon brug
git submodule init
git mv oldpath/submodule newpathsubmodule
git submodule update
bemærk venligst, at dette vil ændre den post i den .,gitmodule-filen, og du vil muligvis ikke forpligte den, og det meste af tiden bruger du kun git submodule update --init
da det vil være mere konsistent med SCM
Slet ubrugt undermodul
Remove referencing lines in .gitmodules
Remove referencing lines in .git/config
rm -rf submodule-dir/
git add
git commit -m "removing submodule"
sørg for at kontrollere undermodulstatus, når den er fjernet.
kontroller Submodules status
Git submodules bruger faktisk commit rev fra et andet depot, og du bliver nødt til at skubbe disse ændringer til din vigtigste repo, hvis du vil opgradere dem.,
det er bevist, når du tjekker ud vvs-af rev, som påpeger, at det er submodule
$ 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
Træk et submodule efter kloning et depot
# 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
Opdatere repository url på .git / config fra .gitmodules also
git submodule sync # Adding --recursive here will also update the submodule's submodule if it exists
Checkout en specifik gren på undermodul
som standard vil din undermodul tjekke den specifikke rev for et arkiv i løbet af dets forpligtelse til hovedarkivet. Hvis du vil bruge en gren i undermodulet (for eksempel stabile grene), skal du tilføje gren på .,gitmodules fil og brug
git submodule update --remote
Hvis du ikke angiver nogen grene og brugt --remote
det vil automatisk at hente master-branch. Hvis du er ved at udvikle submodule, så godt du kan enten bruge --merge
eller --rebase
som bekvemmelighed
Udvikling I Submodule
Du kan bruge en særlig push, hvis du ønsker at opdatere din submodule fra dine vigtigste repo
du kan Også bruge 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
Endelig kan du bruge disse alias for at forbedre din arbejdsgang