Skip to content

Instantly share code, notes, and snippets.

@fivemini
Last active August 29, 2015 13:56
Show Gist options
  • Save fivemini/9017120 to your computer and use it in GitHub Desktop.
Save fivemini/9017120 to your computer and use it in GitHub Desktop.
github $ git clone https://github.com/fivemini/git-submodule-sample.git
Cloning into 'git-submodule-sample'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
github $
github $
github $ cd git-submodule-sample/
git-submodule-sample $
git-submodule-sample $
git-submodule-sample $ git checkout -b br1
Switched to a new branch 'br1'
git-submodule-sample $
git-submodule-sample $ touch br1.txt
git-submodule-sample $ git add .
git-submodule-sample $ git commit -m "touch br1.txt"
[br1 73bfa82] touch br1.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 br1.txt
git-submodule-sample $
git-submodule-sample $ git push origin br1
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 270 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/fivemini/git-submodule-sample.git
* [new branch] br1 -> br1
git-submodule-sample $
git-submodule-sample $
git-submodule-sample $ git checkout master
Switched to branch 'master'
git-submodule-sample $
git-submodule-sample $ git branch
br1
* master
git-submodule-sample $
git-submodule-sample $ git submodule add -b br1 git://github.com/fivemini/git-submodule-sample.git br1
Cloning into 'br1'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 3 (delta 0)
Receiving objects: 100% (6/6), done.
git-submodule-sample $
git-submodule-sample $
git-submodule-sample $ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: .gitmodules
# new file: br1
#
git-submodule-sample $
git-submodule-sample $ cd br1/
br1 $ git branch
* br1
master
br1 $ git status
# On branch br1
nothing to commit, working directory clean
br1 $ ll
total 16
drwxr-xr-x 5 staff 170 2 15 18:22 .
drwxr-xr-x 6 staff 204 2 15 18:22 ..
-rw-r--r-- 1 staff 28 2 15 18:22 .git
-rw-r--r-- 1 staff 42 2 15 18:22 README.md
-rw-r--r-- 1 staff 0 2 15 18:22 br1.txt
br1 $
br1 $ cd ..
git-submodule-sample $
git-submodule-sample $ git commit -m "git submodule add -b br1 git://github.com/fivemini/git-submodule-sample.git br1"
[master 72a07d6] git submodule add -b br1 git://github.com/fivemini/git-submodule-sample.git br1
2 files changed, 5 insertions(+)
create mode 100644 .gitmodules
create mode 160000 br1
git-submodule-sample $ git push origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 424 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/fivemini/git-submodule-sample.git
3e578fb..72a07d6 master -> master
git-submodule-sample $
git-submodule-sample $ git show
commit 72a07d67863ee0aa58b41d984ec7e0b3facc2455
Author: fivemini <fivemini@gmail.com>
Date: Sat Feb 15 18:23:45 2014 +0900
git submodule add -b br1 git://github.com/fivemini/git-submodule-sample.git br1
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..f7e320a
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "br1"]
+ path = br1
+ url = git://github.com/fivemini/git-submodule-sample.git
+ branch = br1
diff --git a/br1 b/br1
new file mode 160000
index 0000000..73bfa82
--- /dev/null
+++ b/br1
@@ -0,0 +1 @@
+Subproject commit 73bfa82b79eb07a8f27aa6717d9190fee36797c1
git-submodule-sample $
git-submodule-sample $
git-submodule-sample $ cd ../
github $
github $ git clone https://github.com/fivemini/git-submodule-sample.git git-submodule-sample_clone
Cloning into 'git-submodule-sample_clone'...
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 9 (delta 1), reused 5 (delta 0)
Unpacking objects: 100% (9/9), done.
github $
github $ ll git-submodule-sample_clone/br1/
total 0
drwxr-xr-x 2 staff 68 2 15 18:40 .
drwxr-xr-x 6 staff 204 2 15 18:40 ..
github $
github $
github $ cd git-submodule-sample_clone/
git-submodule-sample_clone $
git-submodule-sample_clone $ git status
# On branch master
nothing to commit, working directory clean
git-submodule-sample_clone $
git-submodule-sample_clone $ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/fivemini/git-submodule-sample.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
git-submodule-sample_clone $
git-submodule-sample_clone $
git-submodule-sample_clone $ cat .gitmodules
[submodule "br1"]
path = br1
url = git://github.com/fivemini/git-submodule-sample.git
branch = br1
git-submodule-sample_clone $
git-submodule-sample_clone $
git-submodule-sample_clone $ git submodule update --init
Submodule 'br1' (git://github.com/fivemini/git-submodule-sample.git) registered for path 'br1'
Cloning into 'br1'...
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 9 (delta 1), reused 5 (delta 0)
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.
Submodule path 'br1': checked out '73bfa82b79eb07a8f27aa6717d9190fee36797c1'
git-submodule-sample_clone $
git-submodule-sample_clone $
git-submodule-sample_clone $ git status
# On branch master
nothing to commit, working directory clean
git-submodule-sample_clone $
git-submodule-sample_clone $
git-submodule-sample_clone $ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/fivemini/git-submodule-sample.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[submodule "br1"]
url = git://github.com/fivemini/git-submodule-sample.git
git-submodule-sample_clone $
git-submodule-sample_clone $
git-submodule-sample_clone $ cat .gitmodules
[submodule "br1"]
path = br1
url = git://github.com/fivemini/git-submodule-sample.git
branch = br1
git-submodule-sample_clone $
git-submodule-sample_clone $
git-submodule-sample_clone $ ll br1/
total 16
drwxr-xr-x 5 staff 170 2 15 18:42 .
drwxr-xr-x 6 staff 204 2 15 18:40 ..
-rw-r--r-- 1 staff 28 2 15 18:42 .git
-rw-r--r-- 1 staff 42 2 15 18:42 README.md
-rw-r--r-- 1 staff 0 2 15 18:42 br1.txt
git-submodule-sample_clone $
git-submodule-sample_clone $
git-submodule-sample_clone $ cd ../
github $
github $ git clone --recursive https://github.com/fivemini/git-submodule-sample.git git-submodule-sample_clone--rec
Cloning into 'git-submodule-sample_clone--rec'...
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 9 (delta 1), reused 5 (delta 0)
Unpacking objects: 100% (9/9), done.
Submodule 'br1' (git://github.com/fivemini/git-submodule-sample.git) registered for path 'br1'
Cloning into 'br1'...
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 9 (delta 1), reused 5 (delta 0)
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.
Submodule path 'br1': checked out '73bfa82b79eb07a8f27aa6717d9190fee36797c1'
github $
github $
github $ ll git-submodule-sample_clone/br1/
total 16
drwxr-xr-x 5 staff 170 2 15 18:42 .
drwxr-xr-x 6 staff 204 2 15 18:40 ..
-rw-r--r-- 1 staff 28 2 15 18:42 .git
-rw-r--r-- 1 staff 42 2 15 18:42 README.md
-rw-r--r-- 1 staff 0 2 15 18:42 br1.txt
github $
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment