Splinter-ben
8/19/2017 - 8:03 PM

Mon git cheat

Mon git cheat

Git cheat sheet by Benjamin

Visuel git

  • $ gitk --all #Affiche un visuel de notre git
  • **$ git log --graph --oneline ** #Affiche un log graphique de git dans le terminal
  • **$ git log --graph --oneline --first-parent ** #Affiche un log graphqiue d'une seule branche

Initialiser un projet

  • **$ git init ** #Inittialiser git
  • $ git help config #Help config
  • $ git config --global user.email benjamin@monmail.com #Configurer l'email de l'utilisateur
  • $ git config --global user.name #Configurer le nom d'utilisateur
  • $ git config --list #Toute les informations de notre dépot git

Faire des commits

  • $ git status #Connaître l'état du dépot
  • $ git add #Stage (en transit) le fichier
  • $ git commit #Ouvre vi pour un long message
  • $ git commit -m #Commit avec un message
  • $ git commit -a #Stage les fichiers déja traqué = "git commmit add"
  • $ git commit -a -m #Stage + message du commit
  • *$ git add .html #Ex: ajout tout les fichiers en HTML
  • **$ git add *** #Ajout de tout les fichiers stage
  • $ git add --all #Ajout de tout les fichers y compris les unstage

Ignorer des fichiers

  • $ touch git .gitignore #Créé un dossier git pour ignorer des fichers
  • $ .tmp #(ex:ignore tout les fichers temporaires)
  • $ <nomDuFichierIGnoré> #Ignore un ficher spécifique
  • *$ <monDossierIgnoré>/ ** #Ignore tout un dossier

Visuel des commits

  • $ git help log #Affiche le helper
  • $ git log #Affiche un visuel de tout les commits effectués
  • $ git log --oneline #Afficher les informations sur une ligne
  • $ git log -p #Indique quel chemin observer, (ex: git log -p readme.md) => tout ce qui à été fait sur le fichier readme
  • $ git log -n 1 -p readme.md #Spécifi le nombre de commit à afficher pour une meilleur lisibilité
  • $ git diff #Affiche toute les modifications effectuées sur les fichiers depuis le dernier commit

Les branches

  • $ git branch #Créér une nouvelle branche
  • $ git checkout #Change de branche
  • $ git merge #Fusionne la branche présente avec la branche voulu ⚠️Fast-Forward
  • $git branch -d #Supprime la branche voulu
  • $git reset HEAD^^ le nombre de ^ #Indique que l'on revient ici 2 crans en arrière
  • $git merge --no-ff #Merge sans Fast-Forward

L'historique

  • $ git commit --amen #Permet de modifier le précédent commit
  • $ git reset --hard #Reviens exactement au commit voulu
  • $ git rebase master #Rebase sur
  • $ git rebase --continue #Rebase une fois les problèmes résolus
  • $ git rebase skip #Passe outre mes conflits lors d'un rebase
  • $ git rebase --abort #Vérifier la branche original et annuler le rebase
  • $ git rebase -i master #Permet de faire un rebase en mode interactif
  • $ git rebase -i HEAD~3 #Rebase les 3 derniers commits ensemble

Le remissage(stash)

  • git statsh #Annule toutes modifications survenue après le dernier commit et le stock en mémoire
  • $ git stash list #Liste de tous les stashs
  • $ git stash apply #Merge le stash
  • $ git stash drop #Supprime le dernier stash de la mémoire
  • $ git stash save #Rendre le nom du stash plus explicite lors d'un stash list
  • $ git stash show #Afficher stash en particulier
  • $ git stash pop #Apply + drop du stash voulu d'un coup
  • $ git stash branch #Stash directement une branche
  • $ git stash -u #Track les fichiers non trackés récemment créés

Remote

  • $ git init --bare #Initialise un dépôt sans répertoire de travail
  • $ git remote #Liste les dépôts distants
  • $ git remote -v #Liste les dépôts distants et les chemins associés
  • $ git remote add <dépôt> <chemin/url> #Ajoute un nouveau dépôt distant
  • $ git remote rm <dépôt> #Supprimer un dépôt distant
  • $ git remote rename #Renommer son dépot
  • $ git branch -r #Permet de connaître les branches présentes
  • $ git push <dépôt> <branche" #Envoyer les modifications sur la branche voulu
  • $ git push origin --delete #Supprime la branche distante
  • $ git pull <dépôt> #Récupère les modifications faite sur la branche voulu
  • $ git clone <chemin/url> #Cloner un dossier git
  • $ git pull rebase <dépôt> #Applique un rebase de la branche distante
  • $ git config --global branch.autosetuprebase always #Automatiser les rebase après chaque pull effectué

GitFlow

  • $ git flow init #Initialiser git flow
  • $ git flow <features/hotfix etc...> start #Crééer une feature ou autre
  • $ git flow publish #Pusher du contenu sur notre dépôt
  • $ git pull origin <feature/homepage> #Pull les informations depuis une branche spécifique
  • $ git flow finish #Fusionner les modifications avec la branch de developpement
  • $ git flow start #Crééer un release après merge feature et develop
  • $ git push --tags #Publier et afficher les différents tags