git
Table of Contents
GIT Repository
Setting up GIT
Create Server
Define User
git config --global user.name "k2patel" git config --global user.email "k2patel@live.com"
Create location for Repository
<note tip>replace location with your desired location</note>
mkdir -p /data/git/bumper.git cd /data/git/bumper.git
Create bare repository
git --bare init
Initial Synchronize with client
Initializing commit
<note tip>replace project location with desired location</note>
cd /data/project/bumper/ git init git add . git commit -m "Initial Commit"
Define server and push files
For Local
git remote add origin /data/git/bumper.git git push origin master
For Remote
git remote add origin ketan@reposerver:/data/git/bumper.git git push origin master
Backup
To do backup on existing git repo please follow steps below.
Login to master machine.
Considering you already have key based access between master and backup server.
list available remote repository on master
git remote -v
Now create bare repo on backup server
cd $HOME git --bare init --shared test.git
On Master Server
after you taste your login.
cd ~/test.git git remote add backup --mirror git@backup.k2patel.com:test.git git push backup cat .git/config
Result of last line should should contain text like the next block.
# [remote "Backup"] # url = git@backup.k2patel.com:test.git # fetch = +refs/*:refs/* # mirror = true
Script for Backup
#!/bin/bash #Build by. kpatel # k2patel@hotmail.com ## Nightly Backup of Repository. ## Variables -- ( change According to your need ) repohome=(/home/backup/test.git /home/backup/test2.git ) export receipients="k2patel@sify.com k2patel@hotmail.com" ## Static export git=$(which git) ## Methods notify(){ for n in $receipients; do echo $1 | /bin/mail -s "[GIT] Backup $k2 Failed" $n done } ## Programm for k2 in ${repohome[@]}; do echo $k2 if cd $k2 && $git push backup ; then echo "done" else notify "GIT Backup Failed, $k2" fi done
Git reset local
following command can be used for following purpose :
To discard all local changes and restore it to the remote repository.
When you have error Your branch is ahead of 'origin/master'
git reset --hard origin/master git pull
Git Submodule
Clone Repository including submodule
git clone --recursive git@github.com:k2patel/repo.git
clone submodule from existing project
git submodule update --init --recursive
To initialize single submodule
git submodule update --init modules/repo
Pull changes from all submodule
git submodule foreach git pull origin master
Usefull when submodule HEAD and status HEAD messed up
git submodule update --init
git.txt · Last modified: 2020/08/10 02:35 by 127.0.0.1