Github/Fork

De WikiOpenTruc
Aller à : navigation, rechercher

Warning : Page brouillon / test. à prendre avec des pincettes.

  • Le sujet concerne avant tout github.com
  • On considère un projet open public, auquel on souhaiterait *participer*, sur la branche master
  • On n'a pas de droits d'écriture sur la branche master


Attention :

  • fork n'a pas la connotation parfois agressive associée aux projets blockchains. ça n'a même en général rien à voir. La plupart des forks sont des forks de sauvegarde purs (ça coûte moins de 3 clics, alors pourquoi se priver ?). Et les forks restants sont purement des forks de travail collaboratif, ie on rapatrie le projet chez soi. On bosse dessus tranquillou, puis on fait un pull request amical vers le projet originel de nos supers bons ajouts/modifs.
  • Il doit rester moins de 5% de fork qui sont vraiment des forks de séparation, et ça reste aussi quelque chose de parfaitement sain.


Solution(s)

On se base sur la doc officielle.


La doc officielle recommande de :

  • forker le projet sur son compte perso

ça parait sensé. On bosse en local chez soi, sur sa machine perso, mais il faut bien rendre son travail visible, et github.com propose évidemment de faire ça ... chez github.com (surprise hein !).


Fork

Une fois forké sur son compte perso, le projet est bien downloadé et visible avec tous ses éléments, comme sur sa page propre.

Un bouton Compare est dispo. Un clic dessus juste après un fork montre évidemment 0 différence(s) d'avec le projet originel.

Il y a plusieurs manières de réaliser des modifications. On peut probablement downloader en local, modifier, puis uploader.

Pour de petites modifs, eg sur de la doc, github permet d'éditer directement les fichiers. La sauvegarde est un peu laborieuse, mais ça le fait.

Une fois la modif validée sur sa repo perso, un clic sur Compare permet de bien voir qu'on a changé quelque chose.

Et un Pull Request est automatiquement proposé.

On est tenu par la main pendant tout le process.

Attention : il n'y a pas trop d'intérêt à attendre longtemps pour un pull request. En effet, dans l'attente, quelqu'un d'autre va peut-être aussi proposer une modif, et pour éviter la collision, github va nous demander d'updater notre copie. Bref, ça va faire un peu de boulot en plus.


Fork update

Une question souvent posée : comment updater un fork ?

  • Il y a bien sûr la solution d'effacer puis de reforker. ça le fait. C'est un peu hard ... mais ça semble encore le plus propre.


Effacer un fork

Attention :

  • on fait cela généralement plutôt sur un repository perso,
  • on ne fait pas cela sur un fork avec des heures de travail dessus !
  • c'est une des manières de faire un update bien propre. (ça fait des années que les users demandent un simple bouton update à github ... et que cela n'est pas implémenté)

Il faut aller dans l'onglet "Settings" à droite, puis descendre tout en bas.

On reçoit un gros avertissement dissuasif, on doit taper son mot de passe ... mais bon, on est sensé savoir ce qu'on fait.

à noter que l'opération est parfois très longue. Sans doute pour les repos un peu volumineuses, et peut-être selon la charge des serveurs github.