Table of Contents

GIT : Les bases

Travailler avec un dépôt local

Initialisation du dépôt

Initialisation

$ git -C <path-to-remote> init

Intitialisation bare

$ git -C <path-to-remote> init --bare

L'initialisation bare va créer un dépôt sans arbre d'historique, toutes les modifications seront directement enregistrées sur la racine. Ce genre d'initialision est à réserver pour les dépôts dans lesquels sont déposés les copies des documents, tytpiquement les dépôts du serveur distant.

Track des fichiers du dépôt

Toutes les modifications/ajouts faits sur le dépôt local ne sont pas trackés tant qu'un ADD n'est pas fait

Track total

$ git -C <path-to-remote> add -A

Track d'un fichier

$ git -C <path-to-remote> add <nom_du_fichier>

Il est possible d'ajouter plusieurs fichiers en utilisant les caractères spéciaux

$ git -C <path-to-remote> add *.txt

Commit des modifications

Les modifications ne seront prises en compte sur le local qu'aprés un commit

$ git -C <path-to-repo> commit –m '<message du commit>'

Travailler avec des dépôts distants

Opérations de base

On peut indifféremment utiliser un alias ou une url pour se référer au remote lorque l'on ne veut pas stocker en clair les comptes dans le fichier .git/config

Connaitre l'état du remote

$ git -C <path-to-repo> remote show [<url-to-remote>|<alias-of-remote]

  $ git -C /data/espace-pro/workspace/git/kickstarts remote show "http://user@xx.xx.xxx.xx:88/jacques/kickstarts.git"
  distante http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git
  URL de rapatriement : http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git
  URL push : http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git
  Branche HEAD : master
  Référence locale configurée pour 'git push' :
    master pousse vers master (à jour)

Connaitre l'état du local

Utiliser commit sans indiquer de message

$ git -C <path-to-repo> commit

  $ git -C /data/espace-pro/workspace/git/kickstarts commit
  Sur la branche master
  Votre branche est en avance sur 'origin/master' de 2 commits.
  (utilisez "git push" pour publier vos commits locaux)
  
  rien à valider, la copie de travail est propre

Clôner un dépôt distant

La commande git-clone est utilisée pour cloner un repository git distant dans un répertoire local. Par défaut, la commande recrée le répertoire contenant le dossier .git et y télécharge le contenu du repository.

$ git -C <path-to-repo> clone [<url-to-remote>|<alias-of-remote]

  $ git -C /data/espace-pro/workspace/git/tests clone "http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git"
  Clonage dans 'kickstarts'...
  remote: Counting objects: 37, done.
  remote: Compressing objects: 100% (33/33), done.
  remote: Total 37 (delta 22), reused 0 (delta 0)
  Unpacking objects: 100% (37/37), done.
  Vérification de la connectivité... fait.

Récupérer un dépot distant

La commande git pull est en fait la commande qui regroupe les commandes git fetch suivie de git merge. Cette commande télécharge les données des commits qui n'ont pas encore été récupérées dans la branche locale puis fusionne ensuite ces données.

$ git -C <path-to-repo> pull [<url-to-remote>|<alias-of-remote] <branche>

  $ git -C /data/espace-pro/workspace/git/tests/kickstarts/ pull http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git
  Depuis http://xx.xx.xxx.xx:88/jacques/kickstarts
  * branch            HEAD       -> FETCH_HEAD
  Already up-to-date.

Pousser les modifications vers un dépôt distant

$ git -C <path-to-repo> push [<url-to-remote>|<alias-of-remote] <branche>

  $ git -C /data/espace-pro/workspace/git/tests/kickstarts/ push http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git master
  Everything up-to-date

Travailler avec les alias

La commande remote permet de créer des alias qui seront enregistrés dans le fichier .git/config du dépôt local

Afficher les alias

$ git -C <path-to-repo> remote -v 

  $ git -C /data/espace-pro/workspace/git/kickstarts-bkp/ remote -v 
  kickstarts	http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git (fetch)
  kickstarts	http://xxx:yyyyyyy@xx.xx.xxx.xx:88/jacques/kickstarts.git (push)

Ajouter un alias

$ git -C <path-to-repo>s remote add <nomcourt> <url> 

Retirer un alias

$ git -C <path-to-repo> remote remove <nomcourt>

Modifier l'url d'un alias

$ git -C <path-to-repo> remote set-url <nomcourt> <url>