9 Résumé de la partie Git
En cours
9.1 Installation de git
- https://www.git-scm.com/download/win
- Laissez les options telles quelles en passant systématiquement (10 étapes)
- Verifier l’installation en allant dans un dossier => faites un clic droit et vérifier que les items Open Git GUI here et Open Git Bash here sont bien présent.
9.2 Configuration
Dans une invite de commande (windows, bash installée avec git…)
- Indiquer votre adresse mail
git config --global user.email EMAIL-ADRESSE
- Indiquer votre prénom et votre nom
git config --global user.name "PRENOM et/NOM"
9.3 Connection à forge (via RStudio)
9.3.1 Token
- Installation des packages
usethis
etcredentials
Console R:
install.packages("usethis")
install.packages("gitcreds")
library(usethis)
library(gitcreds)
GITHUB
Console R:
- Vous enverra directement sur la page de création des tokens
::create_github_token() usethis
- Générer le token dans github
- Copier le token
Attention la durée de vie du token est de 30 jours, vous pouvez l’augmenter jusqu’à un an.
- Ajouter le token
Par défaut RStudio affectera le token à Github:
gitcreds_set()
Ou
gitcreds_set(url="https://github.com")
Coller le token et appuyer sur enterenter
- Test de la connection: dans le terminal exécuter:
git clone gitcreds_set(url="https://github.com")
GITLAB
Dans gitlab:
- Aller sur son avatar Edit profile Acces token
- Add new token: sélectionner read repository et write repository
- Copier le token
Attention la durée de vie du token est de 30 jours, vous pouvez l’augmenter jusqu’à un an.
- Ajouter le token
gitcreds_set(url="https://gitlab.com")
Coller le token et appuyer sur enterenter
- Test de la connection: dans le terminal exécuter:
git clone gitcreds_set(url="https://github.com")
9.3.2 Clé SSH
- Création de la clé SSH dans Rstudio1:
- Tools Global Options Git/SVN Create SSH Key
- Views ssh key => Copier la clé
- Ajouter la clé dans Github:
- Aller dans les settings de votre profile SSH & GPH Keys New ssh key coller la clé add ssh key
- Création de la clé dans Gitlab:
- Edit profile SSH keys add new key coller la clé (vous pouver modifier la date d’expiration) => add key
- Facultatif2
Dans le terminal:
eval $(ssh-agent -s)
Puis
ssh-add ~/.ssh/id_ed25519
Si message de ce type:
of host 'github.com (140.82.121.4)' can't be established.
The authenticity +DiY3wvvXXXXXXX\(*_*)/XXXXXXXXXr4UvCOqU.
ED25519 key fingerprint is SHA256:not known by any other names. This key is
Valider avec yes
- Test de la connection. Dans le terminal exécuter:
Github
git@github.com:mthevenin/test_connection_formation.git
Gitlab
git@gitlab.com:mthevenin/test_connection_formation.git
9.4 Les principales commandes git
A utiliser dans un terminal, de préférence le bash
- En local, démarrer un dépôt git
git init
- Verifier le statut des fichiers
git status
- Staged: Ajouter des fichiers ayant fait l’objet d’une modification depuis la version précédente
git add nom_fichier1 nom_fichier2
Tous les fichiers modifiés entre deux versions
git add .
- Commit: Figer une version des fichiers ayant fait l’objet d’un
git add
git commit -m "Titre de la version"
- Lister l’historique
Version longue
git log
Version résumée
git log --oneline
- Contenu d’un commit
git show numero_commit
- Push: Transférer les modifications entre deux commits du répertoire local de travail sur le dépôt distant (remote)
git push
- Pull: Récupération des modifications apportées au dépôt distant vers le répertoire local de travail
git pull
- Créer une branche secondaire
git branch nom_branche
- Changer de branche
git checkout nom_branche
- Fusionner des branches (répertoire local)
A partir de la branche principale (main/master)
git merge nom_branche_secondaire
main
versus master
Depuis 2021, les plateformes git se sont engagées à adopter le nom main
pour la branche principale.
Avec Gitlab cependant, lorsque le dépôt distant est créé avec un template, le nom de la branche principale est resté master
.
Le logiciel git a conservé le nom master
lorsqu’on démarre une instance git dans un répertoire local. Il est possible de le changer avec la commande suivante: git branch -m nouveau_nom
- pull request (demande de fusion dans le dépôt distant)
A partir d’une branche secondaire:
git push origin nom_branche_secondaire
Valider ou non sur gitlab/github la demande de fusion.
- git revert
Par exemple pour un fichier dont la suppression a fait l’objet d’un commit
explicite
git revert numéro_commit
9.5 Exemple d’opérations de versionnage
Pour les animations, on a utilisé l’interface ungit.
On se trouve dans le répertoire demi_git
On ouvre le terminal bash
On démarre le versionnage:
git init
On génère le fichier vide texte.txt:
touch texte.txt
On ajoute du texte
On ajoute le nouveau fichier à cette version (stage):
git add texte.txt
On fige la version avec un commit:
git commit -m "premier commit: add texte.txt"
- On créé le fichier prog.r et on ajoute quelques ligne de codes:
touch prog.r
- On modifie à nouveau le fichier texte.txt
- On versionne ces deux modifications:
git add .
git commit -m "modif texte.txt add prog.r"
- On supprime le fichier texte.txt:
rm texte.txt
- On versionne cette suppression:
git add .
git commit -m "delete texte.txt"
- On fait des modifications sur le fichier prog.r et on les versionne:
git add .
git commit -m "modif prog.r"
- On veut récupérer le fichier supprimé (texte.txt).
- On récupère le numéro du commit liée à la suppression du fichier.
- Directement dans un interface graphique.
- En affichant l’historique des commit:
git log
cd17dba55648a08eaf9131cca862646002c0e986
- On va revenir en arrière sur la suppression avec
git revert numero_commit
:git revert cd17dba55648a08eaf9131cca862646002c0e986
3
- On récupère le numéro du commit liée à la suppression du fichier.