Git for dummies
Git For DummiesThis page describes describes the main commands you need in order to use Git. |
Author(s)
Authors | Christine Tranchant-Dubreuil |
---|---|
Research Unit | UMR DIADE |
Institut |
Keywords
git
Date
10/03/2017
Summary
- Download the repository using the
git clone
command - Update the downloaded repository using the
git pull
command - Add a file, commit and pull with
git add
,git commit
andgit pull
- Remove a file using
git rm
- Branching
Download the repository using the git clone
command
git clone https://github.com/SouthGreenPlatform/TOGGLE-DEV.git <directory name>
#Example
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git clone https://github.com/SouthGreenPlatform/TOGGLE-DEV.git .
Cloning into '.'...
remote: Counting objects: 7945, done.
remote: Compressing objects: 100% (124/124), done.
remote: Total 7945 (delta 78), reused 0 (delta 0), pack-reused 7820
Receiving objects: 100% (7945/7945), 170.06 MiB | 23.03 MiB/s, done.
Resolving deltas: 100% (5503/5503), done.
Checking out files: 100% (364/364), done.
Update the downloaded repository using the git pull
command
update your copy of repository with the version on remote server
git pull https://github.com/SouthGreenPlatform/TOGGLE-DEV.git <branch name>
#Example
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git pull https://github.com/SouthGreenPlatform/TOGGLE-DEV.git master
From https://github.com/SouthGreenPlatform/TOGGLE-DEV
* branch master -> FETCH_HEAD
Already up-to-date.
Add a file, commit and pull with git add
, git commit
and git pull
Don't forget to pull to download the latest changes before pushing
To add a file (a change) to your local index with git add
git add <filename>
To actually commit these changes with git commit
git commit -m "message" <file name>
To send those changes to your remote repository with git pull
git push https://github.com/SouthGreenPlatform/TOGGLE-DEV.git <branch_name>
Example
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git add update.txt
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git commit -m "Adding update.txt file" update.txt
[master ebb0a1c] Adding update.txt file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 update.txt
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git push https://github.com/SouthGreenPlatform/TOGGLE-DEV.git master
Counting objects: 3, done.
Delta compression using up to 16 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 271 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local objects.
To https://github.com/SouthGreenPlatform/TOGGLE-DEV.git
fec3a1f..ebb0a1c master -> master
Remove a file using git rm
git rm <file name>
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git rm update.txt
rm 'update.txt'
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git commit -m "Remove update.txt file" update.txt
[master 9fa50b4] Remove update.txt file
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 update.txt
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git push https://github.com/SouthGreenPlatform/TOGGLE-DEV.git master
Counting objects: 3, done.
Delta compression using up to 16 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 236 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local objects.
To https://github.com/SouthGreenPlatform/TOGGLE-DEV.git
ebb0a1c..9fa50b4 master -> master
Branching
Branches are used to develop new features or modify codes isolated from each other. The master branch is the "default" branch when a repository is created. Use other branches for development and merge them back to the master branch.
View all branches that were ever checked out on your local copy using git branch
git branch
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git branch
* master
- indicates the branch used actually
View all distant branches using git branch
git branch -r
[tranchant@master0 TOGGLE-ON-THE-FLY]$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/picardtools-samtofastq
origin/samtoolsBlocks
origin/structuralVariant
origin/tgicl
origin/transabyss
origin/trinity
Create your own branch on your local copy then transfer it on remote server
Create the branch
git branch <branch name>
Move into this branch
git checkout <branch name>
Commit the changes
git commit -m "mon commentaire"
Push this local branch on the remote server
git push https://github.com/SouthGreenPlatform/TOGGLE-DEV.git nom_branche
Get a distant branch on the local repository if the branch don't exist locally
Method 1
git checkout <remote branch name>
git pull https://github.com/SouthGreenPlatform/TOGGLE-DEV.git nom_branche_distante `
Method 2
git branch <remote branch name>
git pull https://github.com/SouthGreenPlatform/TOGGLE-DEV.git <remote branch name>
git checkout <remote branch name>
To merge another branch (ex: samtoolsBlock) into your active branch (e.g. master)
Move into the "active" branch (e.g. master)
git checkout master
Update your local repository to the newest commit,
git pull https://github.com/SouthGreenPlatform/TOGGLE-DEV.git master
Merging
git merge samtoolsBlock
Check and resolve the conflicts generated
You are responsible to merge those conflicts manually by editing the files shown by git status
.
git status
Commit and push the changes and the merge on the distant server
git commit -m "Branch merging samtoolsBlock-master" -a
git push https://github.com/SouthGreenPlatform/TOGGLE-DEV.git master `
Remove a branche
on the remote server
git push https://github.com/SouthGreenPlatform/TOGGLE-DEV.git :nom_branche_a_suppr `
on our local copy
git branch nom-branche_a_suppr -d
Back to the change just before the last commit without losing the work done
# create one branch
git branch readDir
# move on this branch
git checkout readDir
# push
git push https://github.com/SouthGreenPlatform/TOGGLE-DEV.git readDir `
# back to the former branch
git checkout dev
# Revert the commit (number given on the terminal)
git revert d10a97d
# Push
git push
# Back to the branch
git checkout readDir
+DIVERSES COMMANDES+
To get status
git status
To get log
git log
git log --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
Pour mettre la commande du dessus en alias dans git (exemple avec git lg)
git config --global alias.lg "log --color --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
- pour virer un fichier du git quand il est trop gros (et qu'on ne peut plus pusher)
git filter-branch --index-filter 'git rm --cached --ignore-unmatch DATA/expectedData/snpEffdata/MSU6.1/sequences.fa' --prune-empty --tag-name-filter cat -- --all
Docs:
https://ccwiki.in2p3.fr/developpements:formation:git
http://www.moussu.fr/git/