Skip to content

Commit 0a876d8

Browse files
committed
tirage et poussée sur des dépôts différents
progit/progit2#1200
1 parent eb81692 commit 0a876d8

File tree

2 files changed

+72
-6
lines changed

2 files changed

+72
-6
lines changed

book/06-github/sections/2-contributing.asc

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,14 @@ Il est centré sur le processus de travail par branches thématiques (voir <<ch0
3737

3838
Le principe général est le suivant :
3939

40-
1. création d'une branche thématique à partir de la branche `master`,
41-
2. validation de quelques améliorations (_commit_),
42-
3. poussée de la branche thématique sur votre projet GitHub (_push_),
43-
4. ouverture d'une requête de tirage sur GitHub (_Pull Request_),
44-
5. discussion et éventuellement possibilité de nouvelles validations (_commit_).
45-
6. Le propriétaire du projet fusionne (_merge_) ou ferme (_close_) la requête de tirage.
40+
1. Duplication du projet.
41+
2. Création d'une branche thématique à partir de la branche `master`,
42+
3. validation de quelques améliorations (_commit_),
43+
4. poussée de la branche thématique sur votre projet GitHub (_push_),
44+
5. ouverture d'une requête de tirage sur GitHub (_Pull Request_),
45+
6. discussion et éventuellement possibilité de nouvelles validations (_commit_).
46+
7. Le propriétaire du projet fusionne (_merge_) ou ferme (_close_) la requête de tirage.
47+
8. Synchronisation de la branche master mise à jour avec celle de votre propre dépôt.
4648

4749
C'est essentiellement le processus de gestion par gestionnaire d'intégration traité dans <<ch05-distributed-git#s_integration_manager>>, mais au lieu d'utiliser des courriels pour communiquer et faire une revue des modifications, les équipes utilisent les outils Web de GitHub.
4850

@@ -479,3 +481,61 @@ image::images/markdown-08-drag-drop.png[Glisser-déposer d'images]
479481

480482
Si vous regardez à nouveau l'image <<ch06-github#s_pr_references>>, vous y verrez une petite indication ``Parsed as Markdown'' (Traitement Markdown) en haut de la zone de texte.
481483
En cliquant dessus, vous serez redirigé vers une page (en anglais) affichant un aide-mémoire de référence vous résumant tout ce que vous pouvez faire avec Markdown sur GitHub.
484+
485+
[[s_tirer_et_pousser_sur_differents_depots]]
486+
==== Garder votre dépôt GitHub public à jour
487+
488+
Une fois que vous avez dupliqué un dépôt GitHub, votre dépôt (votre « copie ») existe indépendamment de l'original.
489+
En particulier, lorsque le dépôt original a de nouveaux _commits_, GitHub vous en informe avec un message comme :
490+
[source,text]
491+
----
492+
This branch is 5 commits behind progit:master.
493+
----
494+
495+
Mais votre dépôt GitHub ne sera jamais mis à jour automatiquement par GitHub ; c'est quelque chose que vous devez faire vous-même.
496+
Heureusement, cela est très facile à faire.
497+
498+
Une possibilité pour faire ça ne requiert aucune configuration.
499+
Par exemple, si vous avez dupliqué depuis `https://github.com/progit/progit2-fr.git`, vous pouvez garder votre branche `master` à jour comme ceci :
500+
[source,console]
501+
----
502+
$ git checkout master <1>
503+
$ git pull https://github.com/progit/progit2-fr.git <2>
504+
$ git push origin master <3>
505+
----
506+
507+
<1> Si vous étiez sur une autre branche, basculer sur `master`.
508+
<2> Récupérer les modifications depuis `https://github.com/progit/progit2-fr.git` et les fusionner dans `master`.
509+
<3> Pousser votre branche `master` sur `origin`.
510+
511+
Cela fonctionne, mais c'est un peu fastidieux d'avoir à épeler l'URL de récupération à chaque fois.
512+
Vous pouvez automatiser ce travail avec un peu de configuration :
513+
514+
[source,console]
515+
----
516+
$ git remote add progit https://github.com/progit/progit2-fr.git <1>
517+
$ git branch --set-upstream-to=progit/master master <2>
518+
$ git config --local remote.pushDefault origin <3>
519+
----
520+
521+
<1> Ajouter le dépôt source et lui donner un nom.
522+
Ici, j'ai choisi de l'appeler `progit`.
523+
<2> Paramétrer votre branche `master` pour suivre la branche `master` du dépôt distant `progit`.
524+
<3> Définir le dépôt de poussée par défaut comme étant `origin`.
525+
526+
Une fois que cela est fait, le flux de travail devient beaucoup plus simple :
527+
528+
[source,console]
529+
----
530+
$ git checkout master <1>
531+
$ git pull <2>
532+
$ git push <3>
533+
----
534+
535+
<1> Si vous étiez sur une autre branche, basculer sur `master`.
536+
<2> Récupérer les modifications depuis `progit` et les fusionner dans `master`.
537+
<3> Pousser votre branche `master` sur `origin`.
538+
539+
Cette approche peut être utile, mais elle n'est pas sans inconvénient.
540+
Git fera ce travail pour vous gaiement et silencieusement, mais il ne vous avertira pas si vous faites un _commit_ sur `master`, tirez et fusionnez depuis `progit`, puis poussez sur `origin` -- toutes ces opérations sont valides dans cette configuration.
541+
Vous devrez donc prendre garde à ne jamais faire de _commit_ directement sur `master`, puisque cette branche appartient effectivement au dépôt en amont.

book/10-git-internals/sections/refspec.asc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ Si elle veut que Git le fasse automatiquement à chaque exécution de `git push
122122

123123
De même, cela fera que, par défaut, `git push origin` publiera la branche locale `master` sur la branche distante `qa/master`.
124124

125+
[NOTE]
126+
====
127+
Vous ne pouvez pas utiliser la _refspec_ pour récupérer les modifications depuis un dépôt et pousser sur un autre.
128+
Pour voir un exemple de comment faire cela, référez-vous à <<ch06-github#s_tirer_et_pousser_sur_differents_depots>>.
129+
====
130+
125131
=== Supprimer des références
126132

127133
Vous pouvez aussi utiliser les _refspecs_ pour supprimer des références sur le serveur distant en exécutant une commande comme :

0 commit comments

Comments
 (0)