Show Menu
Cheatography

Git basics commands Cheat Sheet by [deleted]

most usefull commands

Workflow

La règle d'or est de ne jamais travailler sur master et toujours la garder foncti­onn­elle.

Implém­ent­ation d'une nouvelle feature:

1) Créer une nouvelle branche
$ git checkout -b <br­anc­hNa­me>

2) Une fois le travail terminé
$ git add <fi­le(­s)> && git commit -m 'message explicite'

3) Récupérer les change­ments sur master depuis le début de ma feature
$ git checkout master && git pull

4) Ajouter les change­ments à ma branche
$ git checkout <br­anc­hNa­me> && git rebase -i master
Profitez de cette étape pour mettre un clean dans les commit et ne faire qu'un seul commit structuré. (option 'squash' dans l'editeur qui rebase)

5) TESTER QUE TOUT FONCTIONNE

6) RETESTER QUE TOUT FONCTIONNE

7) Repasser sur master, vérifier qu'aucun changement n'a été effectué durant les tests
$ git checkout master && git pull
Si il y a eu des change­ments répéter les étapes 4, 5, 6 et 7 sinon continuer a l'étape suivante

8) Ajouter ma feature sur master
$ git merge <br­anc­hNa­me>
Les change­ments sont maintenant sur master.

9) Détruire la branche en local et sur le serveur
$ git branch -D <br­anc­hNa­me> && git push origin :<b­ran­chN­ame>

Merge / Rebase

Fusionne <br­anc­h> avec la branche courante
$ git merge <br­anc­h>
Rebase la branche courante avec <br­anc­h>
$ git rebase <br­anc­h>
Rebase en mode interactif
$ git rebase -i <br­anc­h>
Annuler un rebase en cours
$ git rebase --abort
Ajoute les fichiers pour continuer le rebase (après avoir réglé les conflits)
$ git add <fi­le>
Valider le rebase après avoir résolu les confits et add les fichiers
$ git rebase --continue

Tools

Atom avec les plugins:
Merge conflict
git control
git log

shell
http:/­/oh­myz.sh/

client graphique git
sourcetree (mac)
gitk (linux)
 

Save time

git config --global editor.<editorName>

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --oneline --decorate --graph --all"
git config --global alias.unstage "reset HEAD --"
git config --global alias.uncommit "reset --soft HEAD^"

Ajouter un .gitignore a la racine de votre dépôt et ajouter les classiques
*.o
*~
*.txt
le nom du binaire et ce que ne voulez pas rendre en général.

Divers

Statut des fichiers dans le dossier courant
$ git status
Afficher l'hist­orique des commits
$ git log
Afficher les différ­ences depuis le précédent commit
$ git diff ou git diff <na­me> pour spécifier un fichier
Se déplacer sur un commit en partic­ulier
$ git checkout <SH­A_1>

Branch

Créer une branche
$ git branch <br­anc­h_n­ame>
Effacer une branche en local
$ git branch -D <br­anc­h_n­ame>
Effacer une branche sur le serveur
$ git push origin :<b­ran­ch_­nam­e>
Afficher la liste des branches
$ git branch
Changer de branche
$ git checkout <br­anc­h_n­ame>
Créer et changer de branche
$ git checkout -b <br­anc­h_n­ame>

Panic button

Enlever un fichier indexé
$ git reset HEAD <fi­leN­ame>
Déplacer la HEAD sur le commit précédent
$ git reset --soft HEAD^
Editer le précédent commit
$ git commit --amend
Annuler tous les changement sur un fichier depuis le précédent commit
$ git checkout -- <fi­leN­ame>
Restaurer l'état du dossier et faire une copie temporaire des changement en cours
$ git stash
Afficher la liste des sauver­gardes tempor­aires
$ git stash list
Récupérer une sauvegarde temporaire
$ git stash drop / git stash drop stash@{2}
Supprimer la liste des sauveg­ardes tempor­aires
$ git stash clear
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Git Cheat Sheet