Table of Contents
GIT : Les bases
Table of Contents
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>