Skip to content

Instantly share code, notes, and snippets.

@norio-nomura
Last active March 30, 2016 08:59
Show Gist options
  • Save norio-nomura/17ce4bdf0151185e77d9b1fcfb5a469d to your computer and use it in GitHub Desktop.
Save norio-nomura/17ce4bdf0151185e77d9b1fcfb5a469d to your computer and use it in GitHub Desktop.
`git submodule update --init --recursive` stores gitdir in full path into `.git` of nested submodules

git submodule update --init --recursive stores gitdir in full path into .git of nested submodules. So, working directory is not portable to another directory.

On following example, Carthage/Checkouts/Quick/Externals/Nimble/ is nested submodule and Carthage/Checkouts/Quick/Externals/Nimble/.git contains full path.

➜  15:34:01  git clone https://github.com/Carthage/Commandant.git
Cloning into 'Commandant'...
remote: Counting objects: 891, done.
remote: Compressing objects: 100% (93/93), done.
remote: Total 891 (delta 47), reused 0 (delta 0), pack-reused 788
Receiving objects: 100% (891/891), 176.39 KiB | 0 bytes/s, done.
Resolving deltas: 100% (459/459), done.
Checking connectivity... done.
➜  15:34:07  cd Commandant
➜  15:34:09 git:(master) git submodule update --init --recursive
Submodule 'Carthage/Checkouts/Nimble' (https://github.com/Quick/Nimble.git) registered for path 'Carthage/Checkouts/Nimble'
Submodule 'Carthage/Checkouts/Quick' (https://github.com/Quick/Quick.git) registered for path 'Carthage/Checkouts/Quick'
Submodule 'Carthage/Checkouts/Result' (https://github.com/antitypical/Result.git) registered for path 'Carthage/Checkouts/Result'
Submodule 'Carthage/Checkouts/xcconfigs' (https://github.com/jspahrsummers/xcconfigs.git) registered for path 'Carthage/Checkouts/xcconfigs'
Cloning into 'Carthage/Checkouts/Nimble'...
remote: Counting objects: 4393, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 4393 (delta 9), reused 0 (delta 0), pack-reused 4364
Receiving objects: 100% (4393/4393), 954.61 KiB | 387.00 KiB/s, done.
Resolving deltas: 100% (3031/3031), done.
Checking connectivity... done.
Submodule path 'Carthage/Checkouts/Nimble': checked out '3f3ae0ebd210ed563ce75e313f1b6022188eb660'
Cloning into 'Carthage/Checkouts/Quick'...
remote: Counting objects: 5010, done.
remote: Total 5010 (delta 0), reused 0 (delta 0), pack-reused 5009
Receiving objects: 100% (5010/5010), 1.60 MiB | 817.00 KiB/s, done.
Resolving deltas: 100% (3030/3030), done.
Checking connectivity... done.
Submodule path 'Carthage/Checkouts/Quick': checked out '2f037560be197f0f5ae992512549bc29fabb3818'
Submodule 'Externals/Nimble' (https://github.com/Quick/Nimble.git) registered for path 'Externals/Nimble'
Cloning into 'Externals/Nimble'...
remote: Counting objects: 4393, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 4393 (delta 9), reused 0 (delta 0), pack-reused 4364
Receiving objects: 100% (4393/4393), 954.61 KiB | 427.00 KiB/s, done.
Resolving deltas: 100% (3031/3031), done.
Checking connectivity... done.
Submodule path 'Carthage/Checkouts/Quick/Externals/Nimble': checked out '6457ffc4495e8fdc27b538c4bd0325d143a85393'
Cloning into 'Carthage/Checkouts/Result'...
remote: Counting objects: 1090, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 1090 (delta 24), reused 0 (delta 0), pack-reused 1027
Receiving objects: 100% (1090/1090), 194.22 KiB | 0 bytes/s, done.
Resolving deltas: 100% (582/582), done.
Checking connectivity... done.
Submodule path 'Carthage/Checkouts/Result': checked out '382f9339404d24f632a5f98453c1e08a5ea55904'
Cloning into 'Carthage/Checkouts/xcconfigs'...
remote: Counting objects: 629, done.
remote: Total 629 (delta 0), reused 0 (delta 0), pack-reused 629
Receiving objects: 100% (629/629), 111.83 KiB | 0 bytes/s, done.
Resolving deltas: 100% (227/227), done.
Checking connectivity... done.
Submodule path 'Carthage/Checkouts/xcconfigs': checked out 'd78854b22b9567e7f30d748bdd4966c86bcc93a5'
➜  15:34:30 git:(master) find . -name .git -type f|xargs cat
gitdir: ../../../.git/modules/Carthage/Checkouts/Nimble
gitdir: ../../../.git/modules/Carthage/Checkouts/Quick
gitdir: /Users/norio/github/Commandant/.git/modules/Carthage/Checkouts/Quick/modules/Externals/Nimble
gitdir: ../../../.git/modules/Carthage/Checkouts/Result
gitdir: ../../../.git/modules/Carthage/Checkouts/xcconfigs
➜  15:34:32 git:(master) git --version
git version 2.8.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment