Vous êtes sur la page 1sur 43

Git : dépôts distants

Achref El Mouelhi

Docteur de l’université d’Aix-Marseille


Chercheur en programmation par contrainte (IA)
Ingénieur en génie logiciel

elmouelhi.achref@gmail.com

H & H: Research and Training 1 / 21


Plan

1 Dépôt nu

2 Dépôt distant

3 Cloner un dépôt

4 Documentation en français

H & H: Research and Training 2 / 21


Dépôt nu

Dépôt nu

Dépôt nu
H I ©
U
dépôt sans espace de travail (en lecture EL
seule)

L MO
pas de Commit possible
r e f E
ch pour tous les utilisateurs
une sorte de serveur
A
©

H & H: Research and Training 3 / 21


Dépôt nu

Dépôt nu
Se placer dans le parent du dépôt courant
cd ..

H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 4 / 21


Dépôt nu

Dépôt nu
Se placer dans le parent du dépôt courant
cd ..

Créer un répertoire
H I ©
mkdir firstGitBare UEL
O
f E LM
ch r e
©A

H & H: Research and Training 4 / 21


Dépôt nu

Dépôt nu
Se placer dans le parent du dépôt courant
cd ..

Créer un répertoire
H I ©
mkdir firstGitBare UEL
O
f E LM
Se placer dans ce répertoire
ch r e
cd firstGitBare ©A

H & H: Research and Training 4 / 21


Dépôt nu

Dépôt nu
Se placer dans le parent du dépôt courant
cd ..

Créer un répertoire
H I ©
mkdir firstGitBare UEL
O
f E LM
Se placer dans ce répertoire
ch r e
cd firstGitBare ©A
Créer un dépôt nu
git init --bare

H & H: Research and Training 4 / 21


Dépôt distant

Dépôt distant

H I ©
Dépôt distant ?
UEL
O
f E LM
dépôt nu, site hébergeur (GitHub, Bitbucket...)...

ch r e
©A

H & H: Research and Training 5 / 21


Dépôt distant

Dépôt distant

À partir de notre premier dépôt (firstGit), créer un premier


dépôt distant
git remote add origin c:/cheminVers/firstGitBare

H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 6 / 21


Dépôt distant

Dépôt distant

À partir de notre premier dépôt (firstGit), créer un premier


dépôt distant
git remote add origin c:/cheminVers/firstGitBare

H I ©
UEL
Afficher la liste des dépôts distants O
f E LM
git remote
ch r e
©A

H & H: Research and Training 6 / 21


Dépôt distant

Dépôt distant

À partir de notre premier dépôt (firstGit), créer un premier


dépôt distant
git remote add origin c:/cheminVers/firstGitBare

H I ©
UEL
Afficher la liste des dépôts distants O
f E LM
git remote
ch r e
©A
Afficher les branches distantes
git branch -r
// aucune

H & H: Research and Training 6 / 21


Dépôt distant

Dépôt distant
Envoyer (publier) la branche master sur le dépôt distant
git push origin master

H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 7 / 21


Dépôt distant

Dépôt distant
Envoyer (publier) la branche master sur le dépôt distant
git push origin master

Afficher les branches distantes


H I ©
git branch -r
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 7 / 21


Dépôt distant

Dépôt distant
Envoyer (publier) la branche master sur le dépôt distant
git push origin master

Afficher les branches distantes


H I ©
git branch -r
UEL
O
f E LM
Ou aussi
ch r e
git branch -a ©A

H & H: Research and Training 7 / 21


Dépôt distant

Dépôt distant
Envoyer (publier) la branche master sur le dépôt distant
git push origin master

Afficher les branches distantes


H I ©
git branch -r
UEL
O
f E LM
Ou aussi
ch r e
git branch -a ©A
Supprimer une branche distante
git push origin --delete nomBranche

H & H: Research and Training 7 / 21


Dépôt distant

Dépôt distant

Vérifier la réception de la branche à partir du firstGitBare


git branch
H I ©
// *master
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 8 / 21


Dépôt distant

Dépôt distant

Vérifier la réception de la branche à partir du firstGitBare


git branch
H I ©
// *master
UEL
O
f E LM
Afficher tous les Commit
ch r e
git log --oneline ©A

H & H: Research and Training 8 / 21


Dépôt distant

Dépôt distant

Pour supprimer un remote

H I ©
EL
git remote remove nomRemote

O U
f E LM
ch r e
©A

H & H: Research and Training 9 / 21


Dépôt distant

Dépôt distant

Pour supprimer un remote

H I ©
EL
git remote remove nomRemote

O U
f E LM
Pour renommer un remote
ch r e
©A
git remote rename oldName newName

H & H: Research and Training 9 / 21


Cloner un dépôt

Cloner un dépôt

Se placer dans le parent du dépôt courant


H I ©
cd ..
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 10 / 21


Cloner un dépôt

Cloner un dépôt

Se placer dans le parent du dépôt courant


H I ©
cd ..
EL
M OU
f E LfirstGitClone
Cloner le dépôt firstGit dans
chr e
© A
git clone c:/cheminVers/firstGitBare firstGitClone

H & H: Research and Training 10 / 21


Cloner un dépôt

Cloner un dépôt

Se placer dans le répertoire cloné


cd firstGitClone

H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 11 / 21


Cloner un dépôt

Cloner un dépôt

Se placer dans le répertoire cloné


cd firstGitClone

H I ©
UEL
Vérifier le dépôt distant O
git remote -v
f E LM
ch r e
©A

H & H: Research and Training 11 / 21


Cloner un dépôt

Cloner un dépôt

Se placer dans le répertoire cloné


cd firstGitClone

H I ©
UEL
Vérifier le dépôt distant O
git remote -v
f E LM
ch r e
©A
Vérifier les Commit
git log --oneline

H & H: Research and Training 11 / 21


Cloner un dépôt

Cloner un dépôt

Préparer un nouveau Commit


echo bonjour >> new.txt
git add .
git commit -m "adding new.txt"
H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 12 / 21


Cloner un dépôt

Cloner un dépôt

Préparer un nouveau Commit


echo bonjour >> new.txt
git add .
git commit -m "adding new.txt"
H I ©
UEL
L MO
r e f E
Publier le commit dans firstGitBare
git push origin
A chmaster
©

H & H: Research and Training 12 / 21


Cloner un dépôt

Cloner un dépôt

Préparer un nouveau Commit


echo bonjour >> new.txt
git add .
git commit -m "adding new.txt"
H I ©
UEL
L MO
r e f E
Publier le commit dans firstGitBare
git push origin
A chmaster
©
Vérifier cela depuis firstGitBare
git log --oneline

H & H: Research and Training 12 / 21


Cloner un dépôt

Cloner un dépôt

Pour récupérer le Commit depuis firstGit

H I ©
EL
git pull origin master

O U
f E LM
ch r e
©A

H & H: Research and Training 13 / 21


Cloner un dépôt

Cloner un dépôt

Pour récupérer le Commit depuis firstGit

H I ©
EL
git pull origin master

O U
f E LM
r
Vérifier cela depuis firstGitBare
ch e
git log --oneline
©A

H & H: Research and Training 13 / 21


Cloner un dépôt

Cloner un dépôt

Préparer un nouveau Commit à partir de firstGitClone


echo bonjour >> a.txt
git add .
git commit -m "adding a.txt"
H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 14 / 21


Cloner un dépôt

Cloner un dépôt

Préparer un nouveau Commit à partir de firstGitClone


echo bonjour >> a.txt
git add .
git commit -m "adding a.txt"
H I ©
UEL
L MO
r e f E
Publier le commit dans firstGitBare
git push origin
A chmaster
©

H & H: Research and Training 14 / 21


Cloner un dépôt

Cloner un dépôt

Préparer un nouveau Commit à partir de firstGitClone


echo bonjour >> a.txt
git add .
git commit -m "adding a.txt"
H I ©
UEL
L MO
r e f E
Publier le commit dans firstGitBare
git push origin
A chmaster
©
Vérifier cela depuis firstGitBare
git log --oneline

H & H: Research and Training 14 / 21


Cloner un dépôt

Cloner un dépôt

Refaire la même chose depuis firstGit


echo bonjour >> b.txt
git add .
git commit -m "adding b.txt"
H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 15 / 21


Cloner un dépôt

Cloner un dépôt

Refaire la même chose depuis firstGit


echo bonjour >> b.txt
git add .
git commit -m "adding b.txt"
H I ©
UEL
O
f E LM
r e
Publier le commit dans firstGitBare
chmaster
A
git push origin
©

H & H: Research and Training 15 / 21


Cloner un dépôt

Cloner un dépôt

Refaire la même chose depuis firstGit


echo bonjour >> b.txt
git add .
git commit -m "adding b.txt"
H I ©
UEL
O
f E LM
r e
Publier le commit dans firstGitBare
chmaster
A
git push origin
©
Impossible car les travaux publiés par firstGitClone n’ont pas été
récupérés

H & H: Research and Training 15 / 21


Cloner un dépôt

Cloner un dépôt

Solution
git pull origin master
H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 16 / 21


Cloner un dépôt

Cloner un dépôt

Solution
git pull origin master
H I ©
UEL
L
Personnaliser le commit de merge MO
r e f E
A ch
©

H & H: Research and Training 16 / 21


Cloner un dépôt

Cloner un dépôt

Solution
git pull origin master
H I ©
UEL
L
Personnaliser le commit de merge MO
r e f E
h
AcfirstGitBare
Tout publier©dans
git push origin master

H & H: Research and Training 16 / 21


Cloner un dépôt

Cloner un dépôt

H I ©
EL
Et si on ne veut pas fusionner, on préfère plutôt le rebase
U
O
git pull --rebase origin master
f E LM
ch r e
©A

H & H: Research and Training 17 / 21


Cloner un dépôt

Cloner un dépôt

Remarques
H I ©
EL
OU
On peut également faire un push pour un Commit, un tag...
M
On peut forcer le push -f
f EmLême en cas de contenu divergeant :
h r e
notre historique remplacera
c celui du dépôt distant
©A

H & H: Research and Training 18 / 21


Cloner un dépôt

Cloner un dépôt
Exercice

Créer un nouveau repository GitHub (R1)

Ajouter un fichier et le commiter (C1)

Cloner le repository (R2)


H I ©
Lister toutes les branches locales et distantes U EL
L MO
fE
Sur R1, modifier le fichier et commiter (C2)

Sur R2, récupérer C2hre


Aclog
© git
Vérifier avec

Sur R2, créer une branche B1

Aller sur B1, modifier le fichier et commiter (C3)

Publier B1 sur R1

H & H: Research and Training 19 / 21


Cloner un dépôt

Suite

Créer une branche B2 sur R1

Récupérer B2 sur R2

Dans R2, aller sur B2

Tagger B2 sur R2 (T1)


H I ©
U EL
Publier T1 sur R1
O
Vérifier que T1 est sur R1
f E LM
ch r e
Sur R1 B1, modifier la première ligne du fichier et commiter (C4)

©A
Sur R2 B1, modifier la première ligne du fichier et commiter (C5)

Publier C5 sur R1 (conflit)

Résoudre le conflit

Vérifier la présence d’un commit de merge sur R1 B1

H & H: Research and Training 20 / 21


Documentation en français

Documentation en français

H I ©
Documentation en français
UEL
O
https://git-scm.com/book/fr/v2
f E LM
ch r e
©A

H & H: Research and Training 21 / 21

Vous aimerez peut-être aussi