GIT configuration

Configure console output

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

Set the local user

git config --global "votre_pseudo"
git config --global

In order to change the global config, or to add aliases,, type:

vi ~/.gitconfig

The content should be:

diff = auto
status = auto
branch = auto
name = votre_pseudo
email =
ci = commit
co = checkout
st = status
br = branch

Managing repositories

Get a shared repository:

git remote add origin
git remote -v
git push -u origin master

Create a repository on a server:

mkdir FOLDER
git init --bare

Penser à modifier le fichier description

Get a private repository:

git clone ssh://

Basic commands

Get the current status

git status

Display the history

git log

Display the files waiting to be committed

git diff

Load a branch or the master

git checkout master
git checkout MYBRANCH

Add files, commit then publish to the server:

git add --all
git commit -m "YOUR COMMENT"
git push --all origin

Reinitialise the repository to the head server version

git reset --hard HEAD
git pull

Reinitialise the repository to a previous version

git reset --hard c8616db

Retrieving modifications

git pull

Retrieving modifications from a branch

git merge origin/BRANCH

Managing branches

List all branches

git branch

Create a branch and use it

git branch MYBRANCH
git checkout MYBRANCH

Create a branch with uncommitted data:

git checkout -b MYBRANCH

Delete a branch

git branch -d branchname

Show merged branches

git branch --merged master

Show unmerged branches

git branch --no-merged

Merge a branch to the master

git checkout master
git merge MYBRANCH

Display differences between branches

git diff branch_1..branch_2

Remove local changes

git stash
git stash list
git stash clear


To take into account changes made to .gitignore, type:

git rm --cached -r .

Then add your files and commit as usual.

Migrate a SVN repository

mkdir /data/Projets/temp
cd /data/Projets/temp
git svn init --no-metadata
git config svn.authorsfile ../authors.txt
git svn fetch
git remote add origin
git push origin --all
cd ..
rm -rf /data/Projets/temp

Initialise a desktop or web project

git init
echo -e "build/\nbin/\n.gradle/\n" > .gitignore
git status
git add .
git commit -m 'First upload'
git remote add origin
git push -u origin master

Initialise an android project

git init
echo -e "
# Application files
# Files for the dex VM
# Java class files
# Generated files
# Local configuration file (sdk path, etc)
/.idea/libraries" > .gitignore
git status
git add .
git commit -m 'First upload'
git remote add origin
git push -u origin master

Change the last commit message

git commit --amend

Cancel all commits (warnings, all work would be lost)

git reset --hard HEAD^

The possible options are:

• HEAD : last commit ;

• HEAD^ : before last commit ;

• HEAD^^ : before before last commit ;

• HEAD~2 : before before before last commit ;

d6d98923868578a7f38dea79833b56d0326fcba1 : to this commit

• d6d9892 : to this commit (shortcut name).

To roolback on a file not committed

git checkout nomfichier