Outils pour utilisateurs

Outils du site


public:kb:git

GIT

Liens

  • Git Book LE site Git, très complet
  • Si vous n'avez que quelques minutes, liste ce Petit guide il va vraiment à l'essentiel.
  • Git Cheat sheet (tirée du site précédent)

Installer Git client

Installer

Par les dépots

sudo apt-get install git

un peu compliqué non ?

Déclarer un compte

git config --global user.name "Your_Name"
git config --global user.email "youremail@domain.com"

Ces commandes vont avoir pour effet de renseigner le fichier ~/.gitconfig en lui ajoutant :

[user]
        name = Your_Name
        email = youremail@domain.com

Projet

Déclarer un dossier comme projet git.
Se placer dans le répertoire en question et :

git init

ou pour directement récupérer le contenu d'un projet existant :

Cloner un repository

git clone url_du_repository

url_du_repository peut prendre plusieurs formes, selon le protocole utilisé :

  • ssh :
    utilisateur@serveur:/chemin/projet.git
  • http :
    http://exemple.com/projetgit.git
  • local et git : voir cette documentation

Commandes

Ajouter un fichier

NB : Il faut être placé dans le dossier du repository …

git add mon_fichier.txt

On peut procéder ainsi pour plusieurs fichiers, mais il est aussi possible d'indiquer tout un répertoire (et son arborescence) :

git add .

Supprimer un fichier

Supprimer et garder les versions

git rm fichier.txt

Supprimer et ne pas garder les versions

git rm --cached fichier.txt

Renommer un fichier

git mv ancien_nom nouveau_nom

Commit

git commit -am "un message"

Statut

git status

Historique des commits

Connaitre l'historique des commits

git log

Historique pour un seul fichier

git log -p <filename>

Revenir en arrière

Revenir en arrière

git checkout [chemin et nom du fichier]

Envoyer son code au serveur

git push origin master

push : envoyer
origin : nom par défaut du serveur remote
master : branche courante

Récupérer le code depuis le serveur

git pull origin master

Mettre de côté : stash

Supposons qu'on ait une version stable d'un programme, passée en prod.
On décide de travailler sur une nouvelle fonctionnalité (pour ca on édite nos fichiers locaux) quand un bug trouvé en production nécessite qu'on le corrige immédiatement.
Problème : ce qu'on est en train de faire n'est pas terminé et ne peut pas être passé en production, donc si on résout le bug et qu'on commit, on enverra aussi le code non finalisé (en supposant qu'il est dans le même fichier que le bug …). Donc, il faut pouvoir mettre de côté ce qu'on est en train de faire.
Les branches permettent cela, mais aussi, en restant dans la même branche, le stash :

# je travaille sur mon programme
touch fichier.txt
echo "premiere edition" >>fichier.txt
# je le passe sur le serveur, pour le passer en production.
git add . 
git commit -m "premiere edition" 
git push origin master
# maintenant je decide de travailler sur une nouvelle fonctionalite, quand je suis interrompu
echo "deuxième édition, pas terminée... ">> fichier.txt  
#on met de côté l'édition en cours car on doit traiter une urgence 
git stash 
# on est retourné sur le précédent commit
#on édite puis on commit... 
echo "correction du bug" >>fichier.txt
git commit -am "correction du bug"
git push origin master
# on revient sur l'édition en cours 
git stash pop

Tips / bugs

Gitignore est ignoré

astuce trouvée ici

Si au fur et à mesure des commits, ou après un git clone, le .gitignore peut ne plus fonctionner, Git indexe alors des fichiers qui ne le devraient pas. Il faut donc tout réinitialiser.

  • archivage de tout le code modifié non versionné ;
  • suppression de l'index
git rm -r --cached .
  • réimportation de tout l'index (le .gitignore est maintenant pris en compte) :
git add .
  • commit des changements :
git commit -m ".gitignore est maintenant fonctionnel"
public/kb/git.txt · Dernière modification : 2021/01/23 23:12 de laurent.joly