GIT : ligne de commande

git logo

Aujourd’hui quelques lignes de commande pour bien démarrer avec Git (GitHub, BitBucket, …).

GENERAL

// init du "repository" (à faire une fois pour initialiser le "repository" git au tout debut)
git init

// voir l'état du "repository"
git status

COMMIT

// ajouter à l'index
git add hello.js
// commit (-m pour "Message")
git commit -m "Mon message pour ce commit"

// OU possible si le fichier a déjà été ajouté à l'index 1 fois (="git add hello.js"). Permet de faire le "add + message" en une seule ligne.
git commit -am "Mon message pour ce commit"
// envoyer sur github (par exemple)
git push origin master

LOG

// afficher le log (=historique). Quitter log avec "q"
git log

// afficher toutes les différences de chaque commit
git log -p

// permet d'afficher le log en "inline"
git log --oneline

// permet d'afficher le log en mode "graphique" (pour visualiser les branches)
git log --graph --oneline

// rechercher les commits pour un auteur x
git log --author=michael

// rechercher un commit avec un message x
git log --grep="lorem"

RESET

// annuler un fichier ajouté avec "git add ." par exemple
git reset HEAD -- hello.js

REMOTE

git remote add origin https://github.com/<name>/<repo>.git
git push -u origin master

BRANCH

// afficher les branches existantes
git branch

// voir toutes les branches
git branch -a

// creer branch
git branch nom-branche-ici

// changer de branche
git checkout nom-branche-ici // on passe sur la branche "nom-branche-ici"
git checkout master // on passe sur la branche "master"

// OU
// creer branche + se positionner dans cette nouvelle branche
git checkout -b nom-de-la-branche

FLOW

// init de votre structure (feature / bugfix / release / hotfix)
git flow init

// débuter un correctif (par exemple)
git flow hotfix start hotfix_branch

// terminer le correctif (merger, tagger avec "hotfix_branch", supprimer)
git flow hotfix finish hotfix_branch

FETCH & PULL (Récupérer les modifications) :

// Fetch : récupérer toutes les données des commits effectués sur la branche courante qui n'existent pas encore dans votre version en local. Ces données seront stockées dans le répertoire de travail local mais ne seront pas fusionnées avec votre branche locale. Si vous souhaitez fusionner ces données pour que votre branche soit à jour, vous devez utiliser ensuite la commande git merge.
git fetch

// Pull : télécharge les données des commits qui n'ont pas encore été récupérées dans votre branche locale puis fusionne ensuite ces données (git pull = git fetch + git merge).
git pull

// ou encore mieux
git pull --rebase

// ou encore encore mieux (configurer tous vos prochains "git pull" pour qu'ils réalisent un "git pull -rebase" systèmatiquement)
git config --global branch.autosetuprebase always
git pull

MERGE (fusionner 2 branches)

// on se positionne sur une branch
git checkout nom-branche-ici

// on fusionne le contenu de "master" dans la branch "nom-branche-ici"
git merge master

// ou en une ligne
git merge master nom-branche-ici

REBASE

git checkout nom-branche-ici
git rebase master

// ou en mode interactif (avec le -i)
git checkout nom-branche-ici
git rebase -i master

RETROUVER QUI A FAIT LA MODIF

// voir qui a effectué les modifs
git blame hello.js

// voir le contenu des modifs (8544682 correspond au sha)
git show 8544682

.gitignore Permet d’ignorer certain fichier lors de l’envoi (generator gitignore)

// editer .gitignore puis ajouter les fichiers à ignorer
config/config.php
mon-fichier.php
etc …

Divers :

// creer un fichier
touch hello.js
echo > hello.js

// editer le fichier (:x permet de sauvegarder les modifications effectuées sur le fichier)
vim hello.js

// afficher le contenu du fichier (read only)
cat hello.js
tail hello.js

// nombre de ligne, mot, caractère 
wc hello.js

// ouvrir le fichier (dans le soft par défaut)
open hello.js

// copier contenu du fichier
pbcopy < ~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa.pub | pbcopy

// afficher le path
pwd

// recherche dernière commande indiquée (ex : commençant par "git log ...")
history | grep "git log" 

// ajouter vos informations / identités
git config --global user.name "John DOE"
git config --global user.email "john.doe@tld.com"
git config -l

// t'es où git
which git

// NPM - pour checker les failles de sécurité
npm audit

// NPM - pour fixer vos dépendances (en conséquence)
npm audit fix

Terminal (plus fun) :

Vous pouvez installer ZSH, qui vous apportera un meilleur confort d’utilisation de votre terminal.

Ce placer dans le dossier plugin de zsh (~/.oh-my-zsh/custom/plugins/), puis :
git clone https://github.com/zsh-users/zsh-autosuggestions
$ZSH_CUSTOM/plugins/zsh-autosuggestions

Pour finir, ouvrez ~/.zshrc et ajouté « zsh-autosuggestions » dans la section nommée « plugins=( ici ) » :
plugins=(
    git
    zsh-autosuggestions
)

Ce qui donnera une fois installé :

zsh-autosuggestions

source : https://medium.freecodecamp.org/jazz-up-your-zsh-terminal-in-seven-steps-a-visual-guide-e81a8fd59a38 

Apprendre git avec un jeu :

Solutions en ligne :

Logiciels :

Sources :

Michael

Développeur / intégrateur, travaillant en agence web depuis 2005, je viens à présent vous proposer de venir découvrir mes créations personnelles de plugins / themes pour le CMS Wordpress & Prestashop, quelques solutions en mode SAAS & un peu d'actualité web ( / Twitter).

Vous aimerez aussi...