Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| git_submodules [2019/02/27 14:39] – [The end result] rpjday | git_submodules [2019/02/27 19:14] (current) – [Overview] rpjday | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| The good and the bad of submodules, using Wind River' | The good and the bad of submodules, using Wind River' | ||
| + | |||
| + | Stuff to add: | ||
| + | |||
| + | * '' | ||
| ===== Links ===== | ===== Links ===== | ||
| Line 384: | Line 388: | ||
| < | < | ||
| - | $ tree .git/ | + | $ ls -lF .git/ |
| - | .git/ | + | total 48 |
| - | ├── branches | + | drwxrwxr-x. 2 rpjday rpjday 4096 Feb 27 09:31 branches/ |
| - | ├── config | + | -rw-rw-r--. 1 rpjday rpjday |
| - | ├── description | + | -rw-rw-r--. 1 rpjday rpjday |
| - | ├── HEAD | + | -rw-rw-r--. 1 rpjday rpjday |
| - | ├── hooks | + | drwxrwxr-x. 2 rpjday rpjday 4096 Feb 27 09:31 hooks/ |
| - | │ ├── applypatch-msg.sample | + | -rw-rw-r--. 1 rpjday rpjday 7299 Feb 27 09:33 index |
| - | │ ├── commit-msg.sample | + | drwxrwxr-x. 2 rpjday rpjday 4096 Feb 27 09:31 info/ |
| - | │ ├── fsmonitor-watchman.sample | + | drwxrwxr-x. 3 rpjday rpjday 4096 Feb 27 09:31 logs/ |
| - | │ ├── post-update.sample | + | drwxrwxr-x. 4 rpjday rpjday 4096 Feb 27 09:31 objects/ |
| - | │ ├── pre-applypatch.sample | + | -rw-rw-r--. 1 rpjday rpjday 1161 Feb 27 09:31 packed-refs |
| - | │ ├── pre-commit.sample | + | drwxrwxr-x. 5 rpjday rpjday 4096 Feb 27 09:31 refs/ |
| - | │ ├── prepare-commit-msg.sample | + | |
| - | │ ├── pre-push.sample | + | |
| - | │ ├── pre-rebase.sample | + | |
| - | │ ├── pre-receive.sample | + | |
| - | │ └── update.sample | + | |
| - | ├── index | + | |
| - | ├── info | + | |
| - | │ └── exclude | + | |
| - | ├── | + | |
| - | │ ├── HEAD | + | |
| - | │ └── refs | + | |
| - | │ | + | |
| - | │ | + | |
| - | │ | + | |
| - | │ | + | |
| - | │ | + | |
| - | ├── | + | |
| - | │ ├── info | + | |
| - | │ └── pack | + | |
| - | │ | + | |
| - | │ | + | |
| - | ├── | + | |
| - | └── | + | |
| - | ├── heads | + | |
| - | │ └── develop | + | |
| - | ├── remotes | + | |
| - | │ └── origin | + | |
| - | │ | + | |
| - | └── tags | + | |
| - | + | ||
| - | 16 directories, | + | |
| $ | $ | ||
| </ | </ | ||
| - | ==== Committing the submodule | + | ==== Running "git diff" |
| < | < | ||
| - | $ git commit | + | $ git diff --cached |
| - | [master bec4c94] added coroutine2 submodule | + | diff --git a/ |
| - | 2 files changed, 4 insertions(+) | + | new file mode 100644 |
| - | create mode 100644 | + | index 0000000..d0564c5 |
| - | create | + | --- /dev/null |
| + | +++ b/ | ||
| + | @@ -0,0 +1,3 @@ | ||
| + | +[submodule | ||
| + | + path = coroutine2 | ||
| + | + url = https:// | ||
| + | diff --git a/ | ||
| + | new file mode 160000 | ||
| + | index 0000000..0233d35 | ||
| + | --- /dev/null | ||
| + | +++ b/ | ||
| + | @@ -0,0 +1 @@ | ||
| + | +Subproject commit 0233d35081de5b669c60ef8ec5a53854e1b2a577 | ||
| $ | $ | ||
| </ | </ | ||
| - | at which point you can push the result: | + | Abbreviated form: |
| < | < | ||
| - | $ git push origin master | + | $ git diff --cached --submodule |
| - | </code> | + | diff --git a/.gitmodules b/ |
| - | + | new file mode 100644 | |
| - | ===== Under the hood ===== | + | index 0000000..d0564c5 |
| - | + | --- /dev/null | |
| - | The submodule directory has a //file// named '' | + | +++ b/.gitmodules |
| - | + | @@ -0,0 +1,3 @@ | |
| - | < | + | +[submodule |
| - | $ cat coroutine2/.git | + | + path = coroutine2 |
| - | gitdir: ../.git/modules/coroutine2 | + | + url = https://github.com/boostorg/coroutine2 |
| + | Submodule coroutine2 0000000...0233d35 (new submodule) | ||
| $ | $ | ||
| </ | </ | ||
| - | From the superproject, | + | ==== Committing |
| < | < | ||
| - | $ ls -l .git/ | + | $ git commit |
| - | total 48 | + | [master a7561cb] added coroutine2 submodule |
| - | drwxrwxr-x. 2 rpjday rpjday 4096 Feb 13 15:37 branches | + | |
| - | -rw-rw-r--. 1 rpjday rpjday | + | create mode 100644 |
| - | -rw-rw-r--. 1 rpjday rpjday | + | create mode 160000 coroutine2 |
| - | -rw-rw-r--. 1 rpjday rpjday | + | |
| - | drwxrwxr-x. | + | |
| - | -rw-rw-r--. 1 rpjday rpjday 7299 Feb 13 15:38 index | + | |
| - | drwxrwxr-x. 2 rpjday rpjday 4096 Feb 13 15:37 info | + | |
| - | drwxrwxr-x. 3 rpjday rpjday 4096 Feb 13 15:37 logs | + | |
| - | drwxrwxr-x. 4 rpjday rpjday 4096 Feb 13 15:37 objects | + | |
| - | -rw-rw-r--. 1 rpjday rpjday 1174 Feb 13 15:37 packed-refs | + | |
| - | drwxrwxr-x. 5 rpjday rpjday 4096 Feb 13 15:37 refs | + | |
| $ | $ | ||
| </ | </ | ||
| - | ===== Cloning a project with submodules ===== | + | at which point you can push the result: |
| - | + | ||
| - | If you don't want to populate | + | |
| < | < | ||
| - | $ git clone https:// | + | $ git push origin master |
| - | </ | + | |
| - | + | ||
| - | If you want to populate the submodule diredctories: | + | |
| - | + | ||
| - | < | + | |
| - | $ git clone --recurse-submodules https:// | + | |
| - | </ | + | |
| - | + | ||
| - | Populate all submodules after the fact: | + | |
| - | + | ||
| - | < | + | |
| - | $ git submodule update --init --recursive | + | |
| </ | </ | ||