Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
GIT - Ligne de commande principale
title category
Git config
Git

Rappel

Ne pas oublier : l'aide en ligne de commande.

git help config
git help push
git help pull
git help branch

Configuration

# Identity Name
git config --global user.name "aquelito"

# Identity Email
git config --global user.email "axel@aquelito.fr"

# Editor Tool
git config --global core.editor subl

# Diff Tool
git config --global merge.tool filemerge

Liste des globals

git config --list
title category
Principales commandes
Git

Status des fichiers

git status

Lister les branchs

git branch -a

*sur la branche courante.

Créer une branch

# Deux lignes: créer et basculer sur la nouvelle branch
git branch nom_de_ma_branch_nouvelle
git checkout nom_de_ma_branch_nouvelle

# Une seule ligne: créer et basculer
git checkout -b nom_de_ma_branch_nouvelle

Supprimer une branch

# Si la branch est local et n'est pas créée sur le repo distant
git branch -d nom_de_ma_branch_local

# Si la branch est présente sur le repo distant
git push origin --delete nom_de_ma_branch_distante

Changer de branch

git checkout nom_de_ma_branch

Premier commit

git add .
git commit -m "initial commit"

Commit suivant

git add chemin_vers_mon_fichier
git commit -m "message du commit"

Annuler le dernier commit et modifs

git reset --hard md5_commit
git push --force

Antidaté un commit.

git add .
GIT_AUTHOR_DATE="2015-12-12 08:32 +100" git commit -m "Commit antidaté"

Mettre à jour le dépôt local

git pull

Mettre à jour le dépôt local d'une branch spécifique

git pull origin MA_BRANCH

Envoyer ses commits vers le dépôt distant

git push

Envoyer ses commits vers le dépôt distant sur une branch spécifique

git push origin MA_BRANCH

Supprimer un fichier du répertoire de travail et de l'index

git rm nom_du_fichier

Supprimer un fichier de l'index

git rmg --cached nom_du_fichier
title category
Annuler commit
Git

Annuler commits (soft)

Seul le commit est retiré de Git ; vos fichiers, eux, restent modifiés. Vous pouvez alors à nouveau changer vos fichiers si besoin est et refaire un commit.

Annuler le dernier commit

git reset HEAD^

Pour indiquer à quel commit on souhaite revenir, il existe plusieurs notations :

  • HEAD : dernier commit ;
  • HEAD^ : avant-dernier commit ;
  • HEAD^^ : avant-avant-dernier commit ;
  • HEAD~2 : avant-avant-dernier commit (notation équivalente) ;
  • d6d98923868578a7f38dea79833b56d0326fcba1 : indique un numéro de commit ;
  • d6d9892 : indique un numéro de commit version courte.

Annuler commits (hard)

Si vous voulez annuler votre dernier commit et les changements effectués dans les fichiers, il faut faire un reset hard. Cela annulera sans confirmation tout votre travail !

Annuler les commits et perdre tous les changements

git reset --hard HEAD^

Annuler les modifications d’un fichier avant un commit

Si vous avez modifié plusieurs fichiers mais que vous n’avez pas encore envoyé le commit et que vous voulez restaurer un fichier tel qu’il était au dernier commit :

git checkout nom_du_fichier

Annuler/Supprimer un fichier avant un commit

Supposer que vous venez d’ajouter un fichier à Git avec git add et que vous vous apprêtez à le « commiter ». Cependant, vous vous rendez compte que ce fichier est une mauvaise idée et vous voulez annuler votre git add.

Il est possible de retirer un fichier qui avait été ajouté pour être « commité » en procédant comme suit :

git reset HEAD -- nom_du_fichier_a_supprimer
title category
Diff
Git
# Affiche la différence entre le contenu du dernier commit et celui du 
# répertoire de travail. Cela correspond à ce qui serait commité par git commit -a.
git diff HEAD

# Affiche la différence entre le contenu pointé par A et celui pointé par B.
git diff A B

# Diff entre un dossier présent sur deux branches
git diff master..MA_BRANCH chemin/vers/mon_dossier
title category
Modifier l'historique
Git

Modifier le message du dernier commit

git commit --amend

La commande ci-dessus charge le dernier message dans l'éditeur,

  • Modifier message ;
  • Enregistrer et quitter l'éditeur afin de prendre les modifs en compte.

Ajouter des fichiers au dernier commit

git add mon_fichier
git commit --amend

Éditer l'historique avec rebase

# Historique des trois derniers commits
git rebase -i HEAD~3

Ce qui va affichier ceci dans votre éditeur de texte.

pick 6cbdbe2 Message du commit 3
pick 0a75a2d Message du commit 2
pick da74a4e Message du commit 1

# Rebase b8d6fe1..da74a4e onto b8d6fe1 (3 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

Chaque commit est précédé du mot pick, utiliser tous les mots-clés possibles.

  • Pour éditer, un commit changer pick par edit ;
  • Enregistrer et quitter l'éditeur afin de prendre les modifs en compte ;
  • Et suivre les instructions.

Pour valider, les changements utiliser la commande :

git rebase NOM_DE_MA_BRANCH

Dans le cas, ou les commits modifier sont déjà présent sur la branch distante, il faura "forcer"

git push --force origin NOM_DE_MA_BRANCH
title category
Log
Git
# Classique
git log

# Affiche X derniers commits
git log -n X

# Affiche les commits concernant un dossier
git log --oneline -- chemin/vers/mon_dossier

# Affiche un ensemble de commits par date
git log --since=date --until=date

# Représentation de l’historique à partir de HEAD (commit / branch)
git log --oneline --graph --decorate

# Représentation de l’historique à partir d'un fichier (commit / branch)
git log --oneline --graph --decorate nom_du_fichier
title category
Créer une release
Git

Créer une nouvelle branche release/aaaammyy_xx

$ git checkout -b release/20140707_01 dev

Modifier le numéro de version dans le fichier racine READ.md.

$ git commit -a -m "Bumped version 20140707_01"

Se mettre sur la branche dev et :

$ git merge release/20140707_01

Pour finaliser la release, merger les corrections éventuelles sur la master et la dev

$ git checkout master && git merge --no-ff release/20140707_01 && git push origin master
$ git checkout dev && git merge --no-ff release/20140707_01 && git branch -d release/20140707_01 && git push origin dev

Marquage de la version sur la branch master

$ git tag -a 20140707_01 -m "New prod 20140707_01" master && git push origin master --tags
title category
Tag
Git

Retourne la liste des tags disponible

git tag
# ou
git tag -l
git tag --list

Créer un tag

# `-m` permet d'ajouter un message associé au tag
git tag -a v1.0 -m "Mon commentaire pour la version 1.0"

# Ajouter un tag à partir d'un commit anterieur
git tag -a v1.0 -m "Mon commentaire pour la version 1.0" md5_commit

Vérifier un tag en affichant les informations

git tag -v nom_de_l_étiquette

Pousser les tags sur la branch distante

git push origin nom_de_l_étiquette

# Pousser plusieurs tags sur la branch
git push origin --tags
title category
Installation projet
Git

Initialiser un projet

cd chemin/vers/mon_dossier
echo "# MON_PROJET" >> README.md
git init
git add README.md
git commit -m "Initial commit"
git remote add origin ....git
git push -u origin master

Récuperer le repo sur Github

git clone ....git chemin/vers/mon_dossier

Mon repo est composé d'au moins deux branch.

develop : dédié au développement et résolution de bug. master : reflète le code en production. Personne ne doit travailler directement sur cette branch.

Pour récupérer votre branch develop

git branch -a
git checkout origin/develop
git checkout -b develop origin/develop
git branch

Developpement : Branch develop

Prod : Branch Master

# On se met sur la branche master
git checkout master
# On merge la branche develop
git merge develop
# Pour pousser les changements
git push origin master
# Penser à revenir sur develop
git checkout develop
@mortabit

This comment has been minimized.

Copy link

commented Jan 6, 2016

good job ??

@laurentvignaux

This comment has been minimized.

Copy link

commented Feb 4, 2016

Hello,
c'est vrai un très bon job.
Je me permettrai de proposer cette commande pour ceux qui utilisent GitHub avec et à partir la branche gh-pages
pour Jekyll par exemple ou d'autres applications…

//Nicolas Gallagher came across another way to merge master into gh-pages in GitHub’s Help on remotes —
you can push your local master branch to the gh-pages branch on GitHub:

git push -f origin master:gh-pages

voici le lien http://oli.jp/2011/github-pages-workflow/
"GitHub Pages Workflow and deleting git’s master branch"

peut-être un complément pour cette page instructive

cordialement

@figosat

This comment has been minimized.

Copy link

commented May 13, 2016

Très bon résumé

@yolateng0

This comment has been minimized.

Copy link

commented Jul 13, 2016

Super, merci pour le pense-bête

@Mya555

This comment has been minimized.

Copy link

commented Jan 1, 2017

Merci, très utile :)

@patoche93

This comment has been minimized.

Copy link

commented Jan 23, 2017

Excellent ;-)

@mbadama

This comment has been minimized.

Copy link

commented Feb 17, 2017

Bonjour,
Merci pour ce résumé !

@Meghabber

This comment has been minimized.

Copy link

commented Feb 28, 2017

Thanks for this doc

@ghost

This comment has been minimized.

Copy link

commented Mar 3, 2017

Merci,

@tfarmel

This comment has been minimized.

Copy link

commented May 8, 2017

good initiative :)

@yo69008

This comment has been minimized.

Copy link

commented May 9, 2017

Merci pour ce bon résumé, ça peut nous faciliter la vie lorsque qu'on ne maîtrise pas encore toutes les fonctionnalités disponibles.

@denyste

This comment has been minimized.

Copy link

commented May 9, 2017

Salut,

Nouveau avec l'outil GIT.
J'ai effectué un clone de yocto project/poky Morty 2.2.1. (voir ci-dessous les commandes effectuées)

$ git clone -b morty git://git.yoctoproject.org/poky poky-morty
$ cd ~/poky-morty
~/poky-morty$ git checkout -b morty my_branch
~/poky-morty$ git branch
morty

  • my_branch
    Je voudrais savoir comment faire un "pull" sur ces branches, afin de mettre à jour ma branche (my_branch).
    C'est à dire récupérer les modifications éventuellement effectuées sur la branche "morty".

Merci de vos réponses.

@Mya555

This comment has been minimized.

Copy link

commented Sep 7, 2017

Super !!!

@funkycram

This comment has been minimized.

Copy link

commented Jan 12, 2018

Super clair, merci !

@vincefr

This comment has been minimized.

Copy link

commented Feb 28, 2018

merci super !

@MagatteTop

This comment has been minimized.

Copy link

commented Mar 29, 2018

merci beaucoup, explication simple et claire

@jackweb178

This comment has been minimized.

Copy link

commented May 11, 2018

ce resume m'a beaucoup aidé

@Bundy01

This comment has been minimized.

Copy link

commented Jun 4, 2018

Merci pour le taf, ça m'a aidé pour envoyer mon premier pull-request :).
J'ai crée un fork A et je souhaite le mettre à jour à partir du projet initial B. Pouvez-vous me donner la commande exacte à effectuer.

@minakar

This comment has been minimized.

Copy link

commented Jun 5, 2018

good job thnk's bro

@Hypnose2018

This comment has been minimized.

Copy link

commented Jun 12, 2018

Salut à tous ben j'aimerais comprendre un processus sur github
J'ai créer mon compte github .
Ensuite j'ai mon projet en local sur un ordinateur (A) que j'ai déposé sur le github distant.
Je veux maintenant me connecter avec mon même compte github mais sur un autre ordinateur (B) puis importer les fichers qui sont sur le github distant sur mon ordinateur (B) puis faire des modifications et enfin faire la mise à jour sur le github distant .

Merci de m'aider

@bakate

This comment has been minimized.

Copy link

commented Jul 12, 2018

excellent et très pratique pour voir rapidement les commandes les plus importantes

@Vaniom

This comment has been minimized.

Copy link

commented Oct 13, 2018

Merci, je garde sous le coude :)

@Florencelg

This comment has been minimized.

Copy link

commented Oct 23, 2018

Merci, ça m'a permis de visualiser et je le garde comme pense bête :)

@MassDo

This comment has been minimized.

Copy link

commented Jan 25, 2019

Merci c'est parfait ! !

@mariavvd

This comment has been minimized.

Copy link

commented Jan 26, 2019

Merci, c'est précieux !

@rencho13

This comment has been minimized.

Copy link

commented Jan 26, 2019

Bravo pour le travail , clair et précis.

@alexisljn

This comment has been minimized.

Copy link

commented Feb 25, 2019

God bless you

@MohamedXi

This comment has been minimized.

Copy link

commented Mar 1, 2019

Merci, c'est super utile !

@rho6019

This comment has been minimized.

Copy link

commented Apr 18, 2019

merci pour ces commandes git très utilles en quotidien.

@light-int

This comment has been minimized.

Copy link

commented May 23, 2019

merci

@ctrlouis

This comment has been minimized.

Copy link

commented May 23, 2019

Merci 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.