Hub documentation
Pull requests y Discusiones
Pull requests y Discusiones
Las solicitudes de extracción (Pull requests) y las discusiones de Hub permiten a los usuarios realizar contribuciones comunitarias a los repositorios. Las solicitudes de extracción y las discusiones funcionan de la misma manera para todos los tipos de repositorio.
A grandes rasgos, el objetivo es construir una versión más simple de las PRs y Issues de otros hosts de git (como GitHub):
- no se involucran forks: los contribuyentes envían cambios directamente a una rama especial
refen el repositorio de origen. - no existe una distinción clara entre las discusiones y los PR: son esencialmente lo mismo, por lo que se muestran en las mismas listas.
- están optimizados para ML (es decir, repositorios de modelos/conjuntos de datos/espacios), no para repositorios arbitrarios.
Tenga en cuenta que los Pull Requests y las discusiones se pueden habilitar o deshabilitar desde la configuración del repositorio
Lista
Al ir a la pestaña de comunidad en cualquier repositorio, puedes ver todas las Discusiones y las Pull requests. También puedes filtrar para ver solo las que están abiertas.

Ver
La página Discussion te permite ver los comentarios de diferentes usuarios. Si se trata de un Pull Request, puedes ver todos los cambios yendo a la pestaña Files changed.

Editar el título de una discusión / solicitud de extracción
Si abriste una PR o una discusión, eres el autor del repositorio o tienes acceso de escritura, puedes editar el título de la discusión haciendo clic en el botón del lápiz.
Fijar una discusión / solicitud de extracción
Si tienes acceso de escritura a un repositorio, puedes fijar discusiones y Pull Requests. Las discusiones fijadas aparecen al principio de todas las discusiones.


Bloquear una discusión / solicitud de extracción
Si tienes acceso de escritura a un repositorio, puedes bloquear discusiones o Pull Requests. Una vez que una discusión está bloqueada, los comentarios anteriores siguen siendo visibles y los usuarios no podrán añadir nuevos comentarios.


Edición y moderación de comentarios
Si escribiste un comentario o tienes acceso de escritura al repositorio, puedes editar el contenido del comentario desde el menú contextual en la esquina superior derecha del cuadro de comentarios.


Una vez que el comentario se ha editado, aparecerá un nuevo enlace sobre el comentario. Este enlace muestra el historial de ediciones.


También puedes ocultar un comentario. Ocultar un comentario es irreversible, y nadie podrá ver su contenido ni editarlo.

Lea también moderación para ver cómo denunciar un comentario abusivo.
¿Puedo usar Markdown y LaTeX en mis comentarios y discusiones?
¡Sí! Puedes usar Markdown para añadir formato a tus comentarios. Además, puedes utilizar LaTeX para la composición matemática; tus fórmulas se renderizarán con KaTeX antes de ser analizadas en Markdown.
Para ecuaciones de LaTeX, debes usar los siguientes delimitadores:
$$ ... $$para el modo de visualización\\(...\\)para el modo en línea (sin espacio entre las barras y el paréntesis).
¿Cómo gestiono las solicitudes de extracción (Pull requests) localmente?
Supongamos que el número de tu PR es 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/42Modo de borrador
El modo borrador es el estado predeterminado al abrir una nueva Pull request desde cero en “Advanced mode”. Con este estado, otros colaboradores saben que tu Pull request está en curso y que no se puede fusionar. Cuando tu rama esté lista, simplemente pulsa el botón “Publish” para cambiar el estado de la Pull request a “Open”. Ten en cuenta que, una vez publicada, no puedes volver al modo borrador.
Eliminar una referencia de solicitud de extracción
Cuando una Pull request se cierra o se fusiona, puedes eliminar su git ref asociado (la rama que almacena los commits de la PR) para liberar espacio de almacenamiento.
Tras cerrar o fusionar un PR, verás un aviso en la parte inferior de la discusión que muestra el almacenamiento estimado que se podría liberar al eliminar el ref. Haz clic en el botón “Delete ref” para eliminar de forma permanente el ref de git del PR y recuperar el almacenamiento.

Esto resulta especialmente útil cuando la rama principal se ha comprimido y los archivos se eliminaron posteriormente. Esos archivos permanecen en el historial de la rama de la PR, incluso si no fueron añadidos por la propia PR, ocupando almacenamiento que podría liberarse.
Eliminar una referencia de PR es irreversible. Una vez eliminada, ya no podrás obtener ni revisar localmente los commits de la PR.
Uso avanzado de solicitudes de extracción
¿Dónde se almacenan los cambios en el repositorio de git?
Nuestras Pull requests no utilizan forks ni branches, sino “branches” personalizados llamados refs que se almacenan directamente en el repositorio de origen.
Las referencias de Git son el mecanismo interno de git que ya almacena etiquetas y ramas.
La ventaja de usar refs personalizados (como refs/pr/42, por ejemplo) en lugar de ramas es que no se obtienen (por defecto) las personas (incluido el “propietario” del repositorio) que clonan el repositorio, pero aún así se pueden obtener bajo demanda.
Obtención de todas las solicitudes de extracción: para magos de git 🧙♀️
Puedes ajustar tu refspec local para obtener todas las solicitudes de extracción (Pull requests):
- Obtener
git fetch origin "refs/pr/*:refs/remotes/origin/pr/*"- crear una rama local que rastree la referencia
git checkout pr/{PR_NUMBER}
# for example: git checkout pr/42- Si realizas cambios locales, para enviarlos a la referencia de la PR:
git push origin pr/{PR_NUMBER}:refs/pr/{PR_NUMBER}
# for example: git push origin pr/42:refs/pr/42