Git Submodule: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
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
2. After commit of submodule, you have to commit main module
==Structure==
==Structure==
<source lang="bash">
<source lang="bash">

Revision as of 10:18, 12 December 2019

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
2. 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-ckirui.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
   ├─ LICENSE
   └─ README.md
'
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
   ├─ LICENSE
   └─ README.md
'
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
   ├─ LICENSE
   └─ README.md
'
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

#client/AcademiaApp/AcademiaGui
cd /opt/chorke/academia/client/AcademiaApp/AcademiaGui/
vim HelloGui.txt
cd ..

#academia/client/AcademiaApp
vim HelloApp.txt;git add HelloApp.txt
git commit -m 'Hello App Added'
git status


#client/AcademiaApp/AcademiaGui
cd AcademiaGui/
git add --all; git commit -m 'Hello Gui Added'
git status
cd ..

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

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

#client/AcademiaApp/AcademiaGui
cd /opt/chorke/academia/client/AcademiaApp/AcademiaGui/
git checkout master; vim HelloGui.txt
git add --all;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 status
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