# Travailler avec des repos GitHub via la console Git ###### tags: `Git` `memo` ### Installer Git Tuto sur GitHub https://docs.github.com/en/get-started/getting-started-with-git/set-up-git Installer [homebrew](https://brew.sh/fr/) pour Mac si pas existant ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` Si pas installé, peut être nécessaire d'installer xCode (mise à jour Mac notamment). Ensuite la command line tools [peut être appelée depuis la ligne de commande](https://docs.brew.sh/Installation). ``` xcode-select --install ``` Puis on lance l'install de homebrew (suivre les instructions dans le terminal) ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` Puis on [lance l'install de git](https://git-scm.com/download/mac) à proprement parler ``` $ brew install git ``` On peut vérifier que l'installation est bien faite en lançant une commande telle que `$ git init`. Si le message d'erreur correspond aux règles de git, c'est que c'est ok. ### Initialiser les options sur une machine A faire une seule fois, process [expliqué ici](https://help.github.com/en/github/using-git/getting-started-with-git-and-github). Bon tuto [ici également](https://rogerdudler.github.io/git-guide/index.fr.html) NB : copier dans Git Bash : `ctrl + Ins`, coller dans Git Bash : `shift + Ins` Définir le **nom d'utilisateur** affiché dans les commits `$ git config --global user.name "<Nom>"` Définir l'**adresse mail** (la même que le compte GitHub, ou bien une version `noreply` via GitHub pour la cacher) `$ git config --global user.email "<Mail>"` On peut vérifier avec `$ git config --global user.name` et `$ git config --global user.email` On peut créer ces infos **pour un seul repo** en enlevant le paramètre `--global` ### Utiliser une clé SSH Pour éviter d'avoir à renseigner son mot de passe à chaque fois depuis un ordinateur de confiance, on peut créer une clé SSH. [Détails ici](https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). ``` #Générer la clé $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" #Puis entrée pour valider l'emplacement par défaut #Vérifier que la clé fonctionne $ eval $(ssh-agent -s) #Ajouter la clé au ssh-agent $ ssh-add ~/.ssh/id_rsa ``` Il faut ensuite ajouter la clé au compte GitHub ``` #Copier la clé $ clip < ~/.ssh/id_rsa.pub #La coller dans le compte GitHub ``` Puis vérifier que tout s'est bien déroulé et a été pris en compte : `$ ssh -T git@github.com` S'il y a un souci de connexion potentiellement lié à la clé ssh, vérifier si la clé existe en local (pbcopy < ~/.ssh/id_ed25519.pub pour la copier ou vérifier le dossier ~/.ssh) car elle peut juste manquer sur GitHub. ### Récupérer un repo depuis la machine Indiquer de répertoire de travail (comme invite Windows) `$ cd /d/User/Documents/etc` Initialiser GIT `$ git init` Pointer vers le depot `$ git remote add <nomdufichier> <url>` Cloner le depot `$git clone <url>` Créer une branche `$ git branch <nom>` Changer de branche `$ git checkout <nom>` ### Envoyer de nouveaux fichiers dans un repo Ajouter fichiers ou dossier au stage (ou index) pour le prochain commit. ==Cette étape est essentielle, à ne pas oublier, quand on veut pusher un dossier par exemple== `$git add <fichier>` ou `$git add *` Faire le commit (l'ajouter au HEAD) `$git commit` Pour intégrer le message de validation dans la commande : `$ git commit -m "Message de validation"` Envoyer sur GitHub `$git push <nom>` (il faut avoir pointé vers le repo avant) Parfois message d'erreur qui donne les bonnes options à entrer, notamment pour indiquer la branche. Par défaut, master : `git push origin master`