¿Cómo extraer solicitar una página wiki en GitHub?

160

Vi una página wiki en GitHub que no está abierta para edición. Luego bifurqué el proyecto, lo edité en "mi final" e intenté hacer una solicitud de extracción. Resulta que el wiki no está en el proyecto y no hay una manera de enviarle cambios.

Aparte del correo electrónico, ¿hay alguna forma de proceder si quiero sugerir un cambio en la wiki en este caso?

En este punto, descubrí lo que parece una alternativa en "Preguntas con títulos similares", pero aún no pude 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?

cregox
fuente
55
Reportado en github.com/isaacs/github/issues/846
Martin Monperrus
Sé que llego tarde a la fiesta 🎉 en este caso, pero creo que usar el .wikirepositorio git como submódulo del repositorio principal del proyecto parece ser el mejor enfoque para esta situación.
ipatch
Solución para habilitar las solicitudes de extracción en los wikis de GitHub: growingwiththeweb.com/2016/07/…
Vadzim

Respuestas:

120

GitHub no admite solicitudes de extracción para el repositorio wiki , solo el repositorio principal (es una pena, en mi opinión, pero puedo entenderlo).

Aquí hay una forma interesante en que un proyecto gestiona 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:
    • Crea un nuevo repositorio en tu cuenta de github. Llamémoslo "Taffy-Wiki".
    • Clona el repositorio wiki de Taffy en tu máquina local en alguna parte: git clone [email protected]:atuttle/Taffy.wiki.git
    • Elimine el control remoto original de "origen" y agregue su repositorio de github como nuevo "origen" git remote rm originygit remote add origin [email protected]:<YOUR_USERNAME>/Taffy-Wiki.git
  2. Realice los cambios propuestos a nivel local, luego empújelos a 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 oficial de problemas de Taffy solicitándome que revise sus cambios y los combine. Asegúrese de incluir un enlace a su repositorio y describa lo que ha cambiado.
  4. Goto # 2

(De Cómo puedes 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.

Calrion
fuente
@ Chi-YoungJeffreyLii Esos comandos no son míos, sino que provienen de la publicación del blog que cité (vinculé 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, y que incluyen un sistema operativo UNIX o GNU / Linux con el shell Bash.
Calrion
Nitpick: La secuencia de eliminación / adición remota del origen es quizás un poco (innecesariamente) complicada, además el "tenedor" 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
5

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 Risk-First es principalmente una wiki con algunas páginas de Jekyll en el repositorio principal.

Esto significa que el proceso de solicitud de extracción / horquilla 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 presionar tanto al repositorio principal como a la wiki, que git admite bien con URL de origen múltiple:

localhost:website robmoffat$ git remote show origin
* remote origin
  Fetch URL: [email protected]:risk-first/website.git
  Push  URL: [email protected]:risk-first/website.wiki.git
  Push  URL: [email protected]:risk-first/website.git
  HEAD branch: master

Para lograr esto, fusioné los commits de ambos repos después de esto:

¿Cómo fusionas dos repositorios Git?

Y luego presione a ambos repos de esta manera:

Git: empujando el código a dos controles remotos

Espero que esto ayude a alguien.

Rob Moffat
fuente
FYI, mantengo este enfoque, funcionó bastante bien. Sin embargo, por razones completamente diferentes, terminé migrando todo el lote a Jekyll, así que así no es como funciona el primer riesgo
Rob Moffat,
5

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. Extienda su travis-ci build con algo de magia que organiza todos los cambios desde 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 los errores tipográficos en el navegador en cuestión de segundos (incluso como relaciones públicas sin permisos en el repositorio), pero no a través de la wiki.
  4. Cuando un contribuyente se bifurca, también tiene la documentación con el código. Puede cambiar ambos en un RP y todos se revisan en el mismo proceso, por lo que después de fusionar Code y Doc permanece sincronizado. Aún así, tienes la mejor experiencia de usuario para leer la documentación en la wiki con barra lateral, etc.

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

Jörg
fuente
2

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), aplastar todas sus confirmaciones wiki en una gran confirmación, y luego seleccionar esta gran confirmación aplastada en su repositorio. Eso traerá todos tus cambios de wiki a su wiki.

Instrucciones completas:

(COPIADO DEL github gist de Larry Botha AQUÍ: https://gist.github.com/larrybotha/10650410 ):

---------- COMIENZO DE LA COPIA-PEGA DE LA GISTUB GIST ANTERIOR ------------

Combinar los 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 otro , por Roman Ivanov, y sirve para garantizar que si algo le sucede al 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 a la wiki de un repositorio que ha bifurcado, haga lo siguiente:

  • bifurcar el repositorio
  • clone solo la wiki a su máquina: $ g clone [FREPO].wiki.git
  • hacer cambios en su repositorio wiki bifurcado local
  • empuje sus 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

Fusionar cambios

Como propietario de OREPO , ahora ha recibido un mensaje de que hay actualizaciones para su wiki en FREPO de otra persona .

Si los cambios en la wiki se bifurcan desde la última wiki de OREPO , 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 el wiki de OREPO está por delante de donde se bifurcó FREPO , haga lo siguiente:

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

#checkout 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 - [description]"
$ git checkout master

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

---------- FIN DE LA COPIA-PEGA DEL GISTUB GIST ANTERIOR ------------

Gabriel Staples
fuente
0

Si está de acuerdo con tener un documento de una sola página (en realidad 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 que comience con una referencia rápida y luego obtener descripciones / instrucciones más detalladas, para que los usuarios habituales obtengan primero la información más genérica.

Igor Stoppa
fuente