Git Submodule: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
Git submodule is very simple where you have to aware about few things. Those are as following:
Git submodule is very simple where you have to aware about few things. Those are as following:
  1. After pull of submodule, you have to pull/commit main module
  1. After addition of submodule, you have commit main module must
  2. After commit of submodule, you have to commit main module
2. After pull of submodule, you have to pull/commit main module
  3. After commit of submodule, you have to commit main module


==Structure==
==Structure==

Revision as of 11:04, 12 December 2019

Git submodule is very simple where you have to aware about few things. Those are as following:

1. After addition of submodule, you have commit main module must
2. After pull of submodule, you have to pull/commit main module
3. After commit of submodule, you have to commit main module

Structure

:'
/opt/chorke/academia
  ├─ master
  │  ├─ AcademiaApi
  │  ├─ AcademiaGui
  │  └─ AcademiaApp
  ├─ server
  │  ├─ academia-apps-ckiapi.git
  │  ├─ academia-apps-ckigui.git
  │  └─ academia-apps-ckiapp.git
  └─ client
     ├─ AcademiaApi
     ├─ AcademiaGui
     └─ AcademiaApp
'
cd /opt/chorke/academia/server/
git init --bare academia-apps-ckiapi.git
git init --bare academia-apps-ckigui.git
git init --bare academia-apps-ckiapp.git

Master

:'
/opt/chorke/academia/master/AcademiaApi
   ├─ .gitignore
   ├─ README.md
   └─ LICENSE
'
cd /opt/chorke/academia/master/AcademiaApi;git init
git remote add origin /opt/chorke/academia/server/academia-apps-ckiapi.git
git add --all; git commit -m 'initial commit'; git push origin master
:'
/opt/chorke/academia/master/AcademiaGui
   ├─ .gitignore
   ├─ README.md
   └─ LICENSE
'
cd /opt/chorke/academia/master/AcademiaGui;git init
git remote add origin /opt/chorke/academia/server/academia-apps-ckigui.git
git add --all; git commit -m 'initial commit'; git push origin master
:'
/opt/chorke/academia/master/AcademiaApp
   ├─ .gitignore
   ├─ README.md
   └─ LICENSE
'
cd /opt/chorke/academia/master/AcademiaApp;git init
git remote add origin /opt/chorke/academia/server/academia-apps-ckiapp.git
git add --all; git commit -m 'initial commit'; git push origin master
:'
git submodule add /opt/chorke/academia/server/academia-apps-ckiapi.git
git submodule add /opt/chorke/academia/server/academia-apps-ckigui.git

git rm --cached academia-apps-ckiapi; git rm --cached academia-apps-ckigui
git rm --cached .gitmodules; git reset --hard; git clean -fd
rm -rf academia-apps-cki*
'

git submodule add /opt/chorke/academia/server/academia-apps-ckiapi.git AcademiaApi
git submodule add /opt/chorke/academia/server/academia-apps-ckigui.git AcademiaGui

git config -f .gitmodules submodule.AcademiaApi.branch master
git config -f .gitmodules submodule.AcademiaGui.branch master

git commit -m 'academia-ruap-{ckiapi,ckigui} added'
git push origin master

Client

# academia/client/AcademiaApp
cd /opt/chorke/academia/client/
git clone /opt/chorke/academia/server/academia-apps-ckiapp.git AcademiaApp
cd AcademiaApp; git submodule init; git submodule update

vim HelloApp.txt;git add HelloApp.txt
git commit -m 'Hello App Added'

Wrong

# client/AcademiaApp/AcademiaGui
cd /opt/chorke/academia/client/AcademiaApp/AcademiaGui/
vim HelloGui.txt; git add HelloGui.txt
git commit -m 'Hello Gui Added'
git status; cd ..; git status

# academia/client/AcademiaApp
git submodule status --recursive
git submodule foreach git pull origin master
git submodule foreach git push -u origin master

# academia/master/AcademiaGui
cd /opt/chorke/academia/master/AcademiaGui/
git pull origin master

Right

# client/AcademiaApp/AcademiaGui
cd /opt/chorke/academia/client/AcademiaApp/AcademiaGui/
git checkout master; vim HelloGui.txt; git add HelloGui.txt
git commit -m 'Hello GUI Added'
git push origin master; cd ..

# academia/client/AcademiaApp
git add AcademiaGui; git commit -m 'AcademiaGui updated'
git push origin master

# academia/master/AcademiaGui
cd /opt/chorke/academia/master/AcademiaGui/
vim HelloAdd.txt; git add HelloAdd.txt
git commit -m 'Hello Add Text File Added'
git push origin master

# client/AcademiaApp/AcademiaGui
cd /opt/chorke/academia/client/AcademiaApp/AcademiaGui/
git pull origin master; cd ..

# academia/client/AcademiaApp
git add AcademiaGui; git commit -m 'AcademiaGui updated'
git push origin master

# academia/master/AcademiaApp
cd /opt/chorke/academia/master/AcademiaApp/
git submodule foreach git pull origin master
git pull origin master