Méthode de travail git
Via l'interface web de Framagit (ou Gitlab)
Pour passer l'interface de Framagit en Français, vous devez :
- cliquer sur votre avatar (en haut à droite), puis Profile
- modifier Preferred language de English à Français
- cliquer sur le bouton Update profile settings en bas de la page
Créer une divergence
Pour commencer nous devons créer une copie du projet. Cela s'appelle Créer une divergence (souvent aussi appelé forker). Pour ce faire, vous devez :
- vous rendre sur le projet originel, ici https://framagit.org/framasoft/participer
- cliquer sur Créer une divergence
- cliquer sur votre pseudo/avatar
Vous serez redirigé sur votre copie du code (facilement vérifiable en regardant l'adresse : https://framagit.org/spf/participer/
-> https://framagit.org/VOTRE-PSEUDO/participer/
à la place de https://framagit.org/framasoft/participer
).
Créer une branche
Créer une branche vous permet de faire une copie de votre copie. Si vous ne pensez pas faire d'autres contributions, vous pouvez passer cette étape et directement travailler sur la branche principale (souvent appelée master
).
Pour créer une branche :
- vous êtes sur votre copie de projet (1)
- depuis une divergence (2)
- sur la branche principale (3)
- cliquez sur + (4)
- cliquez sur Nouvelle branche (5)
Nommez votre branche dans la case Branch name. Ici, je l'appelle framacode-explications (pas d'espaces ni d'accents). On laisse master pour Create from puisque nous souhaitons bien la créer depuis la branche existante master. On clique alors sur Create branch
Faire un changement (commit
)
A partir de là, vous pouvez faire les modifications que vous souhaitez. Dans cet exemple, je souhaite remplir la page https://participer.framasoft.org/fr/framacode/workflow-git.html actuellement vide, je vais donc la chercher dans le code en cliquant sur Dépôt dans le menu de gauche, puis sur fr
> framacode
> workflow-git.md
. Je clique sur Éditer pour ouvrir le fichier et pouvoir faire mes modifications.
Demander à intégrer les changements (Demandes de fusion
)
Une fois mes modifications faites et prêtes à être envoyées, je remplis le Message de commit sous le fichier avec une courte explication de ce que j'ai fait (ici : « Explications de la méthode de travail via l'interface web de framagit ») et je clique sur Commit changes.
Pour envoyer votre travail sur le code originel, vous devez cliquer sur le bouton Créer une demande de fusion.
Vous êtes alors redirigé sur la page de fusion :
- From (depuis) votre dépôt into (dans) celui dans lequel vous souhaitez voir vos modifications
- le titre de vos modifications
- une explication de ce qu'apporte votre travail
- votre branche source
- la branche vers laquelle vont les modifications
- (optionnel) permet de supprimer la branche une fois la demande de fusion acceptée
- envoi de la demande de fusion
- une visualisation de vos modifications
Discuter / rectifier
Si tout va bien du premier coup (déjà, félicitations) votre demande est acceptée et vous pouvez supprimer votre dépôt, sinon, vous devez reprendre depuis Faire un changement (commit
).
Pour supprimer votre dépôt après que votre demande de fusion ait été acceptée ou refusée, vous devez aller dans Paramètres > Général > cliquer sur Étendre en face de Advanced > Supprimer le projet.
En lignes de commandes et https
- projet à modifier :
https://framagit.org/spf/bacasable
- nom :
bacasable
- de l’utilisateur :
spf
- nom :
- nom utilisateur de la personne qui veut contribuer (celle qui effectuera les commandes dans le reste de ce mode d'emploi):
piaf
[https] Créer une divergence
Pour commencer nous devons créer une copie du projet. Cela s'appelle Créer une divergence (souvent aussi appelé forker). Pour ce faire, vous devez :
- vous rendre sur le projet originel, ici https://framagit.org/spf/bacasable
- cliquer sur Créer une divergence
- cliquer sur le bouton Sélectionner votre pseudo/avatar
Vous serez redirigé sur votre copie du code (facilement vérifiable en regardant l'adresse : https://framagit.org/VOTRE-PSEUDO/bacasable/
à la place de https://framagit.org/spf/bacasable
).
[https] Paramétrer son terminal pour travailler
Dans votre terminal :
- déplacez-vous dans le dossier où vous souhaitez mettre le projet
- copiez l'adresse https du clone en cliquant sur le bouton Clone :
- clonez le dossier en tapant
git clone https://framagit.org/piaf/bacasable
(attention : c'est votre copie que vous devez cloner - icipiaf
) - votre identifiant et mot de passe Framagit seront demandés :
git clone https://framagit.org/piaf/bacasable Clonage dans 'bacasable'… Username for 'https://framagit.org': piaf Password for 'https://piaf@framagit.org': warning: redirection vers https://framagit.org/piaf/bacasable.git/ remote: Enumerating objects: 26, done. remote: Counting objects: 100% (26/26), done. remote: Compressing objects: 100% (18/18), done. remote: Total 26 (delta 6), reused 26 (delta 6), pack-reused 0 Dépaquetage des objets: 100% (26/26), fait.
- déplacez-vous dans le dossier du projet en faisant
cd bacasable/
(nom à adapter en fonction de votre projet) - [Facultatif si vous ne souhaitez faire qu'une seule modification] ajoutez l'adresse du projet originel en tapant :
git remote add upstream https://framagit.org/spf/bacasable
(adresse à changer en fonction du projet)
[https] Créer une branche
Cette étape n'est pas obligatoire mais permet de faciliter la gestion des changements. Cela permet de faire une copie de votre copie. Pour ce faire vous devez taper dans votre terminal git checkout -b mr1
:
git checkout
pour changer de branche-b
permet de créer une nouvelle branchemr1
est le nom de cette branche (vous pouvez en choisir un autre, tant que celui-ci ne comporte pas d'espace)
git checkout -b mr1
Basculement sur la nouvelle branche 'mr1'
[https] Faire un changement (commit
)
Maintenant que vous êtes sur votre nouvelle branche, vous pouvez naviguer dans les dossiers et ouvrir les fichiers avec un éditeur de texte :
Une fois les modifications faites, vous pouvez les lister sur votre terminal en faisant git status
:
git status
Sur la branche mr1
Modifications qui ne seront pas validées :
(utilisez "git add <fichier>…" pour mettre à jour ce qui sera validé)
(utilisez "git checkout -- <fichier>…" pour annuler les modifications dans la copie de travail)
modifié : README.md
Fichiers non suivis:
(utilisez "git add <fichier>…" pour inclure dans ce qui sera validé)
git-selectionner-profile-fork.png
aucune modification n'a été ajoutée à la validation (utilisez "git add" ou "git commit -a")
Cette commande me dit que :
- j'ai fait une modification de fichier :
modifié : README.md
- j'ai fait un ajout d'une image :
Fichiers non suivis: git-selectionner-profile-fork.png
Pour ajouter les images à mon changement (commit
) je dois faire git add .
:
git add
pour demander à ajouter au commit.
pour dire tous les nouveaux fichiers (ici, il n'y en a qu'un seul et on aurait pu écriregit add git-selectionner-profile-fork.png
)
Une fois ajouté, on peut refaire un git status
pour voir le résultat :
git status
Sur la branche mr1
Modifications qui seront validées :
(utilisez "git reset HEAD <fichier>…" pour désindexer)
modifié : README.md
nouveau fichier : git-selectionner-profile-fork.png
Les modifications sont bien enregistrées.
Il faut maintenant créer le commit en tapant : git commit -a -m "Ajout d'une image et modification du readme"
git commit -a
pour ajouter les modifications au commit-m "Ajout d'une image et modification du readme"
pour donner un titre (entre guillemets) à ce commit (généralement une courte description des changements)
git commit -a -m "Ajout d'une image et modification du readme"
[mr1 ecf9b6c] Ajout d'une image et modification du readme
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 git-selectionner-profile-fork.png
Il ne reste plus qu'à envoyer les modifications en faisant : git push origin mr1
. Votre identifiant et mot de passe Framagit seront demandés et vous trouverez l'adresse à cliquer pour faire la demande de fusion :
git push origin mr1
Username for 'https://framagit.org': piaf
Password for 'https://piaf@framagit.org':
warning: redirection vers https://framagit.org/piaf/bacasable.git/
Énumération des objets: 6, fait.
Décompte des objets: 100% (6/6), fait.
Compression par delta en utilisant jusqu'à 4 fils d'exécution
Compression des objets: 100% (4/4), fait.
Écriture des objets: 100% (4/4), 14.85 KiB | 14.85 MiB/s, fait.
Total 4 (delta 0), réutilisés 0 (delta 0)
remote:
remote: To create a merge request for mr1, visit:
remote: https://framagit.org/piaf/bacasable/-/merge_requests/new?merge_request%5Bsource_branch%5D=mr1
remote:
To https://framagit.org/piaf/bacasable
* [new branch] mr1 -> mr1
Dans le cas présent : https://framagit.org/piaf/bacasable/-/merge_requests/new?merge_request%5Bsource_branch%5D=mr1
- titre repris de la commande
git commit -a -m "Ajout d'une image et modification du readme"
- (facultatif si le titre est suffisamment explicite) une description de ce qu'apporte la modification
- le bouton Submit demande de fusion pour qu'elle soit proposée au projet originel
[https] Demander à intégrer les changements (Demandes de fusion
)
A ce niveau, la demande est faite au projet originel et elle peut être intégrée directement ou discutée avec l'équipe.
Si tout va bien et que votre demande est acceptée, vous pouvez récupérer vos changements et supprimer votre branche :
- en tapant
git checkout master
ougit checkout main
pour revenir sur la branche principale git pull origin
pour récupérer les modifications faites et acceptéesgit branch -D mr1
:git branch -D
pour supprimermr1
étant la branche à supprimer
git pull upstream master
(ougit pull upstream main
)
Votre dépôt est maintenant à jour avec vos modifications 🎉