---
# System prepended metadata

title: Travailler avec des repos GitHub via la console Git
tags: [memo, Git]

---

# 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`