MEMO GitHub
19/03/2023 – 20/03/2023 - Création du dépôt sur Github
- Maj : 21/08/2023 -
https://github.com/username/projectName
$ git config -- get user.email > Affiche le mail utilisé sur le compte
$ git config --global user.name « user n ame » > Définit l’utilisateur
$ git config --global user. email a@b.fr > Définit son mail
$ git config --global user. password "12345" > Définit son m ot de passe
$ git clone https:// <Token> @github.com/username/projectName.git > clone le repository distant dans le répertoire local courant. <Token> est le code de sécurité fourni par Github, en remplacement de la traditionnelle paire { user, password }
Pour créer un jeton qui permet l’accès au dépôt, à la commande git clone… :
Menu Profil > Settings > <>Developper settings > Personnal access > tokens > Tokens (classic)
$ cd projectName
Créer un commit :
$ echo « Bonjour » > README.md
$ git status > pour constater que le fichier a bien été créé, pas encore ajouté au dépôt.
$ git add README.md > ajoute le fichier dans l’espace de staging (index)
$ git status
$ git commit -m « ajout fichier README.md » > pour créer un commit à partir de l’espace de staging
$ git status
$ git push > pour uploader le commit sur le dépôt distant
Travail en commun
Fetch :
Les branches distantes sont importées dans le dépôt local avec un nom de la forme dépôtDistant/nomBranche
L'action « fetch » récupère dans le dépôt local les versions disponibles sur un dépôt distant et met à jour ou crée les branches de suivi
Merge :
On fusionne dans la branche courante la branche distante de même nom
Commit :
On archive le résultat de la fusion
Push :
On transfère sur le dépôt distant l'historique de la branche courante
L'action « push » transfère la branche locale sur le serveur. Si une branche de même nom n'existe pas sur le serveur, elle est créée. Sinon, si un « fast-forward » peut être effectué, la branche sur le serveur est mise à jour. Sinon, le « push » est refusé
Pull
L'action « pull » fait un « fetch » puis un « merge » dans une branche locale b à partir de la branche de suivi associée (b/d par défaut)
Travailler à plusieurs avec un dépôt commun
Principe de base
– Dépôt « en ligne » accessible par tous, au moins
occasionnellement
– Chacun « clone » le dépôt commun sur sa machine
Périodiquement :
● Mise à jour de son dépôt local à partir du dépôt commun
● Transfert de versions stables de son travail dans le dépôt commun
Principe « évolué »
– Faire un « fork » du dépôt commun et travailler avec ce dépôt personnel distant
– Faire des « pull request » vers le dépôt commun lorsqu'on a atteint une version stable sur son dépôt personnel distant
En résumé…
● On travaille toujours avec 2 dépôts
– Le dépôt local
– Un dépôt « distant » (remote) auquel on associe un nom
● Les 4 principales commandes git permettant d’interagir avec un dépôt distant sont :
-
git fetch
: on récupère en local le contenu du dépôt distant
-
git pull
: équivalent d’un
git fetch
suivi d’un
git
merge
-
git push
: on transfère l’état actuel de la branche courante (
+
historique) vers le dépôt distant
-
git clone
: on crée un dépôt local à partir d’un dépôt distant
•. L’une des commandes git les plus utilisées est git config. On l’utilise pour configurer les préférences de l’utilisateur : son mail, l’algorithme utilisé pour diff, le nom d’utilisateur et le format de fichier etc. Par exemple, la commande suivante peut être utilisée pour définir le mail d’un utilisateur:
git config --global user.email sam@google.com
Consultation :
git config --get user.email
git config -l
•. Cette commande est utilisée pour créer un nouveau dépôt GIT :
git init
•. La commande git add peut être utilisée pour ajouter des fichiers à l’index. Par exemple, la commande suivante ajoutera un fichier nommé temp.txt dans le répertoire local de l’index:
git add temp.txt
•. La commande git clone est utilisée pour la vérification des dépôts. Si le dépôt se trouve sur un serveur distant, utilisez:
git clone alex@93.188.160.58:/chemin/vers/dépôt
•. Inversement, si une copie de travail d’un dépôt local doit être créée, utilisez:
git clone /chemin/vers/dépôt
•. La commande git commit permet de valider les modifications apportées au HEAD. Notez que tout commit ne se fera pas dans le dépôt distant.
git commit –m “Description du commit”
•. La commande git status affiche la liste des fichiers modifiés ainsi que les fichiers qui doivent encore être ajoutés ou validés. Usage:
git status
•. Git push est une autre commandes GIT de base. Un simple push envoie les modifications locales apportées à la branche principale associée :
git push origin master
•. La commande git checkout peut être utilisée pour créer des branches ou pour basculer entre elles. Par exemple nous allons créer une branche:
command git checkout -b <nom-branche>
•. Pour passer simplement d’une branche à une autre, utilisez:
git checkout <nom-branche>
•. Cette commande remote permet à un utilisateur de se connecter à un dépôt distant. La commande suivante répertorie les dépôts distants actuellement configurés:
git remote –v
•. Cette commande permet à l’utilisateur de connecter le dépôt local à un serveur distant:
git remote add origin <93.188.160.58>
•. La commande git branch peut être utilisée pour répertorier, créer ou supprimer des branches. Pour répertorier toutes les branches présentes dans le dépôt, utilisez:
git branch
•. Pour supprimer une branche:
git branch –d <nom-branche>
•. Pour fusionner toutes les modifications présentes sur le dépôt distant dans le répertoire de travail local, la commande pull est utilisée. Usage:
git pull
•. La commande git merge est utilisée pour fusionner une branche dans la branche active. Usage:
git merge <nom-branche>
•. La commande git diff permet de lister les conflits. Pour visualiser les conflits d’un fichier, utilisez
git diff --base <nom-fichier>
•. La commande suivante est utilisée pour afficher les conflits entre les branches à fusionner avant de les fusionner:
git diff <branche-source> <branche-cible>
•. Pour simplement énumérer tous les conflits actuels, utilisez:
git diff
•. Le marquage est utilisé pour marquer des commits spécifiques avec des poignées simples. Un exemple peut être:
git tag 1.1.0 <insert-commitID-here>
•. L’ exécution de cette commande génère le log d’une branche. Un exemple de sortie :
commit 15f4b6c44b3c8344caasdac9e4be13246e21sadw
Author: Alex Hunter <alexh@gmail.com>
Date: Mon Oct 1 12:56:29 2016 -0600
•. Pour réinitialiser l’index et le répertoire de travail à l’état du dernier commit, la commande git reset est utilisée :
git reset --hard HEAD
•. Git rm peut être utilisé pour supprimer des fichiers de l’index et du répertoire de travail. Usage:
git rm nomfichier.txt
•. L’une des moins connues, git stash aide à enregistrer les changements qui ne doivent pas être commit immédiatement. C’est un commit temporaire. Usage:
git stash
•. Pour afficher des informations sur tout fichier git, utilisez la commande git show . Par exemple:
git show
•. Git fetch permet à un utilisateur d’extraire tous les fichiers du dépôt distant qui ne sont pas actuellement dans le répertoire de travail local. Exemple d’utilisation:
git fetch origin
•. Pour afficher un fichier arborescent avec le nom et le mode de chaque élément, et la valeur SHA-1 du blob, utilisez la commande git ls-tree . Par exemple:
git ls-tree HEAD
•. À l’aide de la valeur SHA-1, affichez le type d’un fichier à l’aide de la commande git cat-file . Par exemple:
git cat-file –p d670460b4b4aece5915caf5c68d12f560a9fe3e4
•. Git grep permet à un utilisateur de rechercher dans les arbres de contenu des expressions et / ou des mots. Par exemple, pour rechercher www.hostinger.com dans tous les fichiers, utilisez:
git grep "www.hostinger.com"
•. Gitk est l’interface graphique du dépôt local. Vous pouvez l’appeler en exécutant:
gitk
•. Avec la commande git instaweb , un serveur Web peut être exécuté par interface avec le dépôt local. Qui redirige directement vers un serveur web. Par exemple:
git instaweb –httpd=webrick
•. Pour optimiser le dépôt en supprimant les fichiers inutiles et les optimiser, utilisez:
git gc
•. La commande git archive permet à un utilisateur de créer un fichier zip ou tar contenant les composants d’un arbre du dépôt. Par exemple:
git archive --format=tar master
•. Via la commande git prune , les fichiers qui n’ont pas de pointeurs entrants seront supprimés. Usage:
git prune
•. Pour effectuer une vérification d’intégrité du système de fichiers git, utilisez la commande git fsck . Tous les fichiers corrompus seront identifiés:
git fsck
•. La commande git rebase est utilisée pour la réapplication des commits sur une autre branche. Par exemple:
git rebase master