Hub documentation

Demandes de tirage et Discussions

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Demandes de tirage et Discussions

Les demandes de tirage (Pull requests) et les discussions du Hub permettent aux utilisateurs de faire des contributions communautaires aux dépôts. Les demandes de tirage et les discussions fonctionnent de la même manière pour tous les types de dépôts.

De manière générale, l’objectif est de créer une version simplifiée des PRs et Issues d’autres hôtes git (comme GitHub) :

  • aucun fork n'est impliqué : les contributeurs poussent directement vers une branche ref spéciale sur le dépôt source.
  • il n’existe pas de distinction stricte entre les discussions et les PR : elles sont essentiellement identiques et sont donc affichées dans les mêmes listes.
  • ils sont optimisés pour le ML (c’est-à-dire les dépôts de modèles/datasets/spaces), et non pour des dépôts arbitraires.

Remarque, les Pull Requests et les discussions peuvent être activées ou désactivées depuis les paramètres du dépôt

Liste

En accédant à l’onglet community de n’importe quel dépôt, vous pouvez consulter toutes les Discussions et les Pull requests. Vous pouvez également filtrer pour n’afficher que celles qui sont ouvertes.

Afficher

La page Discussion vous permet de consulter les commentaires des différents utilisateurs. S’il s’agit d’une Pull Request, vous pouvez voir toutes les modifications en accédant à l’onglet Files changed.

Modifier le titre d'une discussion / d'une demande de tirage

Si vous avez ouvert une PR ou une discussion, si vous êtes l’auteur du dépôt ou si vous y avez un accès en écriture, vous pouvez modifier le titre de la discussion en cliquant sur le bouton crayon.

Épingler une discussion / une demande de tirage

Si vous avez un accès en écriture à un dépôt, vous pouvez épingler des discussions et des Pull Requests. Les discussions épinglées apparaissent en haut de toutes les discussions.

Verrouiller une discussion / une demande de tirage

Si vous avez un accès en écriture à un dépôt, vous pouvez verrouiller les discussions ou les Pull Requests. Une fois une discussion verrouillée, les commentaires précédents restent visibles et les utilisateurs ne peuvent plus ajouter de nouveaux commentaires.

Commentaires : édition et modération

Si vous avez rédigé un commentaire ou si vous disposez d'un accès en écriture au dépôt, vous pouvez modifier le contenu du commentaire depuis le menu contextuel situé dans le coin supérieur droit de la boîte de commentaire.

Une fois le commentaire modifié, un nouveau lien apparaît au-dessus du commentaire. Ce lien affiche l’historique des modifications.

Vous pouvez également masquer un commentaire. Le masquage d'un commentaire est irréversible, et personne ne pourra plus voir son contenu ni le modifier.

Lisez également modération pour savoir comment signaler un commentaire abusif.

Puis-je utiliser Markdown et LaTeX dans mes commentaires et discussions ?

Oui ! Vous pouvez utiliser Markdown pour ajouter du formatage à vos commentaires. De plus, vous pouvez utiliser LaTeX pour la mise en page mathématique : vos formules seront rendues avec KaTeX avant d’être analysées en Markdown.

Pour les équations LaTeX, vous devez utiliser les délimiteurs suivants :

  • $$ ... $$ pour le mode d’affichage
  • \\(...\\) pour le mode en ligne (pas d'espace entre les barres obliques et la parenthèse).

Comment gérer les Pull requests localement ?

Supposons que le numéro de votre PR soit 42.

git fetch origin refs/pr/42:pr/42
git checkout pr/42
# Do your changes
git add .
git commit -m "Add your change"
git push origin pr/42:refs/pr/42

Mode brouillon

Le mode brouillon est l’état par défaut lors de la création d’une nouvelle Pull request à partir de zéro en « Advanced mode ». Avec cet état, les autres contributeurs savent que votre Pull request est en cours de travail et qu’elle ne peut pas être fusionnée. Lorsque votre branche est prête, il suffit de cliquer sur le bouton « Publish » pour changer l’état de la Pull request en « Open ». Notez qu’une fois publiée, vous ne pouvez plus revenir au mode brouillon.

Supprimer une référence de demande de tirage

Lorsqu’une Pull request est fermée ou fusionnée, vous pouvez supprimer sa référence git associée (la branche stockant les commits de la PR) pour libérer de l’espace de stockage.

Après la fermeture ou la fusion d’une PR, un avis s’affiche en bas de la discussion indiquant l’espace de stockage estimé qui pourrait être libéré en supprimant la référence. Cliquez sur le bouton « Delete ref » pour supprimer définitivement la référence git de la PR et récupérer l’espace de stockage.

Ceci est particulièrement utile lorsque la branche principale a été aplatie (squash) et que des fichiers ont été supprimés par la suite. Ces fichiers restent dans l’historique de la branche de la PR, même s’ils n’ont pas été ajoutés par la PR elle-même, occupant de l’espace de stockage qui pourrait être libéré.

La suppression d’une référence de PR est irréversible. Une fois supprimée, vous ne pourrez plus récupérer ni vérifier localement les commits de la PR.

Utilisation avancée des pull requests

Où les modifications sont-elles stockées dans le dépôt git ?

Nos Pull requests n'utilisent pas de forks ni de branches, mais plutôt des « branches » personnalisées appelées refs, stockées directement sur le dépôt source.

Git References sont le mécanisme interne de git qui stocke déjà les tags et les branches.

L’avantage d’utiliser des refs personnalisés (comme refs/pr/42 par exemple) plutôt que des branches est qu’ils ne sont pas récupérés (par défaut) par les personnes (y compris le « propriétaire » du dépôt) qui clonent le dépôt, mais ils peuvent toujours être récupérés à la demande.

Récupération de toutes les Pull requests : pour les magiciens du git 🧙‍♀️

Vous pouvez ajuster votre refspec local pour récupérer toutes les Pull requests :

  1. Récupérer
git fetch origin "refs/pr/*:refs/remotes/origin/pr/*"
  1. créer une branche locale qui suit la référence
git checkout pr/{PR_NUMBER}
# for example: git checkout pr/42
  1. Si vous apportez des modifications locales, pour pousser vers la référence de la PR :
git push origin pr/{PR_NUMBER}:refs/pr/{PR_NUMBER}
# for example: git push origin pr/42:refs/pr/42
Update on GitHub