¿Cómo puedo hacer una solicitud de extracción para una página wiki en GitHub?

10 minutos de lectura

avatar de usuario de cregox
Cregox

Vi una página wiki en GitHub que no está abierto para editar. Luego bifurqué el proyecto, lo edité en “mi extremo” e intenté hacer una solicitud de extracción. resulta que el wiki no está en el proyecto, y no hay forma de realizar cambios en él.

Además de enviar un correo electrónico, ¿hay alguna forma de proceder si quiero sugerir un cambio en el wiki en este caso?

En este punto, descubrí lo que parece ser una alternativa en “Preguntas con títulos similares”, pero aún no podía hacer la solicitud de extracción, por lo que no estoy seguro de que los submódulos sean una buena manera para este propósito. Ahora veo que probablemente podría ramificarlo de alguna manera… Entonces, ¿es este el camino a seguir?

  • Reportado en github.com/isaacs/github/issues/846

    – Martín Monperrus

    22 de diciembre de 2016 a las 8:45

  • Sé que llego tarde a la fiesta 🎉 en esta, pero creo que usando el .wiki git repo como un submódulo del repositorio principal del proyecto parece ser el mejor enfoque para esta situación.

    – iparche

    28 de enero de 2018 a las 6:32

  • Solución alternativa para habilitar las solicitudes de extracción en wikis de GitHub: creciendoconlaweb.com/2016/07/…

    – Vadzim

    7 de abril de 2018 a las 11:24

Avatar de usuario de Calrion
Calrión

GitHub no admite solicitudes de extracción para el repositorio wikisolo el repositorio principal (esto es un poco vergonzoso, en mi opinión, pero puedo entenderlo).

Aquí hay una forma interesante en que un proyecto administra las actualizaciones de la comunidad en su wiki, mientras mantiene un control estricto, en cuanto al código fuente:

Mi flujo de trabajo propuesto es este:

  1. Cree manualmente una bifurcación de la wiki de Taffy en su cuenta de Github:
    • Cree un nuevo repositorio en su cuenta de github. Llamémoslo “Taffy-Wiki”.
    • Clone el repositorio wiki de Taffy en su máquina local en algún lugar: git clone git@github.com:atuttle/Taffy.wiki.git
    • Elimine el control remoto de “origen” original y agregue su repositorio de github como nuevo “origen” git remote rm origin y git remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
  2. Realice sus cambios propuestos localmente, luego insértelos en su cuenta de github: git push -u origin master (‘-u origin master’ solo se requiere la primera vez; luego solo haga git push)
  3. Envíe un ticket al rastreador de problemas oficial de Taffy solicitando que revise sus cambios y los fusione. Asegúrese de incluir un enlace a su repositorio y describa lo que ha cambiado.
  4. Ir a #2

(De Cómo puede contribuir a la documentación de Taffy.)

Si fuera yo, crearía un problema en el repositorio principal (es decir, el que bifurcó) sugiriendo una actualización de la wiki. Si los problemas no están habilitados, entonces el correo electrónico es la única otra opción que se me ocurre.

  • @Chi-YoungJeffreyLii Esos comandos no son míos, pero provienen de la publicación del blog que cité (enlacé la fuente debajo de la cita). Son comandos Git de línea de comandos, que deberían funcionar en cualquier plataforma con Git, incluido Windows, e incluso un sistema operativo UNIX o GNU/Linux con el shell Bash.

    – Calrión

    9 de junio de 2016 a las 23:24

  • Nitpick: La secuencia remota de eliminar/agregar origen es quizás un poco (innecesariamente) complicada, además la “bifurcación” técnicamente no es el origen, por lo que el nombre es engañoso. Sugiero agregar solo un segundo control remoto en el clon local para el nuevo repositorio personal de GitHub (por ejemplo, llamado “personal”) y presionarlo normalmente. De esa manera, también se puede obtener del repositorio de origen real normalmente para sincronizar con el trabajo de otros.

    – tne

    4 de abril de 2020 a las 17:56

Avatar de usuario de Jörg
Jorge

Hemos encontrado la mejor solución para el problema hasta ahora en https://devonfw.com:

  1. Coloque su documentación en el repositorio de Git junto con el código dentro de una carpeta de documentación.
  2. Amplíe su Travis CI construya con algo de magia que organice todos los cambios de esa carpeta de documentación con transformaciones aplicadas al wiki Git. Vea el último enlace de ejemplo a continuación.
  3. Considere la wiki como una vista de solo lectura en la documentación. Tenga en cuenta que con github.com aún puede ver y editar directamente los archivos en la carpeta de documentación. Por lo tanto, aún puede corregir errores tipográficos dentro del navegador en segundos (incluso como relaciones públicas sin permisos en el repositorio), pero no a través de la wiki.
  4. Cuando un colaborador bifurca, también tiene la documentación con el código. Él / ella puede cambiar ambos en un PR y todo se revisa en el mismo proceso, por lo que después de la fusión, el código y la documentación permanecen sincronizados. Todavía tienes el mejor experiencia de usuario para leer documentación en la wiki con barra lateral, etc.

Como estamos al 100% OSS, nos encanta compartir nuestros arduos esfuerzos para llegar a esta gran solución. Aquí están los enlaces como ejemplo:

  • Este es probablemente un buen consejo sobre cómo los proyectos de GitHub deben administrar sus wikis, pero en realidad no responde a la pregunta sobre qué contribuyente debe hacer para los proyectos que no siguen este patrón.

    – jamesdlin

    26 de marzo a las 4:44

  • El primer enlace está roto (404).

    -Peter Mortensen

    21 oct a las 20:33


  • Mientras tanto, hemos cambiado de Travis-CI a las acciones de github: github.com/devonfw/devon4j/blob/develop/.github/workflows/… También puedo recomendar usar antora.org para sitios más avanzados. De hecho, esta es más la sugerencia para el lado de los mantenedores. La pregunta original fue respondida por @Calrion

    – Jörg

    22 oct a las 22:12


Avatar de usuario de Rob Moffat
Rob Moffat

He adoptado un enfoque diferente para esto, que consiste en insertar exactamente el mismo contenido tanto en el repositorio principal como en el wiki. Esto no será del gusto de todos, pero Riesgo primero es principalmente un wiki con algunos jekyll páginas en el repositorio principal.

Esto significa que el proceso de solicitud de extracción/bifurcación funciona bien. Sin embargo, después de fusionar una solicitud de extracción, tengo que hacer el paso adicional de acceder a mi repositorio local y luego enviar tanto al repositorio principal como al wiki, que Git admite bien con múltiples URL de origen:

localhost:website robmoffat$ git remote show origin
* remote origin
  Fetch URL: git@github.com:risk-first/website.git
  Push  URL: git@github.com:risk-first/website.wiki.git
  Push  URL: git@github.com:risk-first/website.git
  HEAD branch: master

Para lograr esto, fusioné las confirmaciones de ambos repositorios siguiendo esto:

¿Cómo se fusionan dos repositorios de Git?

Y luego empuje a ambos repositorios así:

Git: empujar el código a dos controles remotos

  • Para su información, mantengo este enfoque: funcionó bastante bien. Sin embargo, por razones completamente diferentes, terminé migrando todo a Jekyll, por lo que ya no es así como funciona Riskfirst.

    – Rob Moffat

    8 de febrero de 2019 a las 17:22

Avatar de usuario de Gabriel Staples
grapas gabriel

No puede hacer una solicitud de extracción, pero puede abrir un problema, pegar un enlace a su página wiki y dejar que se fusionen en su página wiki con su página wiki.

En breve:

Solo necesitan clonar el repositorio de su página wiki, (git clone YOUR_FORKED_REPO.wiki.git), agrupe todas las confirmaciones de su wiki en una gran confirmación, luego seleccione esta gran confirmación aplastada en su repositorio. Eso traerá todos los cambios de tu wiki a su wiki.

Instrucciones completas:

(Copiado de La esencia de GitHub de Larry Botha aquí: Combinar cambios de wiki desde un repositorio de GitHub bifurcado):

Fusionar cambios de wiki de un repositorio de GitHub bifurcado

Esto está inspirado (o básicamente copiado) de Cómo fusionar los cambios de GitHub Wiki de un repositorio a otrode Roman Ivanov, y sirve para garantizar que, en caso de que algo suceda con el artículo original, la información permanezca agradable y segura aquí.

Terminología

OREPO: repositorio original – el repositorio creado o mantenido por el propietario

FREPO: el repositorio bifurcado que presumiblemente tiene actualizaciones en su wiki, aún no en el OREPO

contribuyendo

Si desea contribuir al wiki de un repositorio que ha bifurcado, haga lo siguiente:

  • bifurcar el repositorio
  • clona solo el wiki en tu máquina:
    $ g clone [FREPO].wiki.git
  • realizar cambios en su repositorio wiki bifurcado local
  • empuja tus cambios a GitHub

Una vez que esté listo para informarle al autor que tiene cambios, haga lo siguiente:

  • abrir un problema en OREPO
  • proporcione un enlace directo al repositorio git de su wiki para facilitar la fusión: es decir [FREPO].wiki.git

Fusión de cambios

como dueño de OREPOahora ha recibido un mensaje de que hay actualizaciones de su wiki en la de otra persona. FREPO.

Si los cambios de wiki se bifurcan desde la última OREPO wiki, puede hacer lo siguiente:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git

# squashing all FREPO changes
$ git pull [FREPO].wiki.git master

$ git push origin master

Si OREPO wiki está por delante de donde FREPO bifurcado de, haga lo siguiente:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git
$ git fetch [FREPO] master:[FREPO-branch]
$ git checkout [FREPO-branch]

# Check out to last OREPO commit
$ git reset --hard [last-OREPO-commit-hash]

# Do massive squash of all FREPO changes
$ git merge --squash HEAD@{1}
$ git commit -m "Wiki update from FREPO - How can I make a pull request for a wiki page on GitHub?"
$ git checkout master

# Cherry-pick newly squashed commit
$ git cherry-pick [OREPO-newly-squashed-commit]
$ git push

Avatar de usuario de Glen
Cañada

GitHub ahora admite esto y puede encontrar detalles en Agregar o editar páginas wiki.

Ahora se trata como un repositorio “normal”, con ramas, solicitudes de extraccióncompromisos, etc.

  • mirando hacia atrás en esta pregunta, sabía incluso en ese entonces que no pertenecía a stackoverflow debido a la especificidad de github… ¡pero hoy tengo un pequeño arrepentimiento por haber insistido tanto en usar github! ¡Necesitamos soluciones de git como sourcehut que promuevan el código abierto mientras abren su fuente también! más aún si usan agpl3+. en cualquier caso… gracias por la actualización. No sé por qué no podía aceptar esto como la respuesta ahora.

    – Cregox

    5 de julio a las 18:29

Avatar de usuario de John Vandenberg
Juan Vandenberg

Si está de acuerdo con tener un documento largo de una sola página (de hecho, me gusta más), puede secuestrar el README.MD y poner el contenido de la wiki allí.

No solo se rastreará como parte del repositorio normal, sino que también se mostrará en la página de inicio.

Se puede hacer para comenzar con una referencia rápida y luego pasar a una descripción/instrucciones más detalladas, de modo que los usuarios habituales accedan primero a la información más genérica.

  • mirando hacia atrás en esta pregunta, sabía incluso en ese entonces que no pertenecía a stackoverflow debido a la especificidad de github… ¡pero hoy tengo un pequeño arrepentimiento por haber insistido tanto en usar github! ¡Necesitamos soluciones de git como sourcehut que promuevan el código abierto mientras abren su fuente también! más aún si usan agpl3+. en cualquier caso… gracias por la actualización. No sé por qué no podía aceptar esto como la respuesta ahora.

    – Cregox

    5 de julio a las 18:29

¿Ha sido útil esta solución?