Me gustaría contribuir a un determinado proyecto en GitHub. ¿Debo tenedor? Sucursal ¿verdad? ¿Qué se recomienda y cómo hacerlo?¿Cómo contribuyo con el código de otra persona en GitHub?
Respuesta
Lo ideal es:
- Fork el proyecto
- hacer una o más bien comentado y limpias commit en el repositorio. Puede crear una nueva rama aquí si está modificando más de una parte o característica.
- Realice un pull request en la interfaz web de github.
si se trata de una nueva solicitud de función, no inicie primero la codificación. Recuerde publicar un problema para analizar la nueva función.
Si la característica está bien discutida y hay algunos +1 o el propietario del proyecto la aprobó, asigne el problema a usted mismo, luego siga los pasos anteriores.
Algunos proyectos no utilizarán el sistema de solicitud de extracción. Consulte con el autor o la lista de correo sobre la mejor manera de volver a introducir su código en el proyecto.
+1. s/solicitud de fusión/solicitud de extracción /? – zoul
Detalles sobre [bifurcación] de GitHub [http://help.github.com/forking/) y [solicitudes de extracción] (http://help.github.com/pull-requests/) –
Sí, solicitud de extracción. La solicitud de fusión es una terminología significativa. –
Para añadir a Yann's answer, una vez que haya bifurcada un proyecto, se puede desarrollar en cualquier rama que desee (uno nuevo, o uno del proyecto original)
Recuerde:
- complemento el proyecto original como un control remoto (forma diferente '
origin
', ya queorigin
sería su propio repositorio, resultado de la horquilla) - rebase su sucursal en la parte superior de la reserva que desea contribuir.
Es importante que su solicitud de extracción genere fusiones de avance rápido.
Véase, por ejemplo:
puede agregar detalles o enlaces en su segundo punto * (rama de rebase) *? – JorgeArtware
@JorgeArtware He actualizado la respuesta con algunos enlaces que ilustran la rebase. – VonC
@VonC Formulo aquí una pregunta, pero si cree que es necesario, haré una pregunta completamente nueva. ¿Por qué debería volver a establecer la base en lugar de fusionar, aparte de tener el 'historial directo'? En otras palabras, esto es lo que hago cuando contribuyo a algunos proyectos (después de la PR de mi rama de la característica se ha combinado para desarrollar y dominar las ramas): master 'git checkout;' 'git pull;' mismo para desarrollar (donde mi rama de características se fusionó primero) La diferencia que se me ocurre, después de leer "pull vs pull --rebase" y "merge vs rebase" es solo la historia plana. ¿Algo más profundo? – linuxbandit
Para añadir a Yan y VonC de las respuestas, esto es un buen recurso de github mismos: http://help.github.com/forking/
También asegúrese de buscar en el barra lateral derecha debajo del encabezado "colaborador".
lornajane tiene un blog que explica el proceso así: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
No es un gran video Railscast here que le guía a través del proceso. También tiene una serie de buenos consejos, como mostrar cómo determinar en qué rama desea trabajar al contribuir, mediante pruebas, submódulos, etc.
Si bien este screencast se centra principalmente en los desarrolladores de Rails, la mayor parte de la información es válido para contribuir a cualquier proyecto de código abierto.
Github tiene muchas formas de colaborar en un proyecto. El modelo que más utiliza el proyecto es un modelo de solicitud de extracción. Comencé un proyecto para ayudar a las personas a realizar su primera solicitud de extracción de GitHub. Puede hacer lo práctico tutorial para make your first PR here
El flujo de trabajo es simple como
- Tenedor el repositorio en GitHub
- Clonar el repositorio a su máquina
- Hacer una rama y hacer los cambios necesarios
- transferir los cambios a su tenedor en GitHub
git push origin branch-name
- Vaya a su tenedor en GitHub para ver un botón
Compare and pull request
- clic en él y dar detalles necesarios
- 1. Tomar el código de otra persona
- 2. ¿Cómo busco una rama en el tenedor de otra persona en GitHub?
- 3. Usando el repositorio de otra persona como un Submódulo de Git en GitHub
- 4. ¿Cómo puedo actualizar el módulo de otra persona en CPAN?
- 5. ¿Cómo puedo publicar el código en GitHub?
- 6. ¿Cómo modifico el Javadoc cuando modifico el código de otra persona?
- 7. taquigrafía si otra persona con la maquinilla de afeitar
- 8. Herramientas y mejores prácticas para comprender el código de otra persona
- 9. ¿Cuál es la ética y la etiqueta de bifurcar el proyecto github de otra persona para liberarlo como una gema?
- 10. ¿Cómo generar código basado en otra clase?
- 11. Si luego únete a otra persona, únete
- 12. Si otra persona si o conmutador caso
- 13. si otra persona si otra cláusula en el prólogo similar a C++
- 14. ¿Cómo puedo cargar código nuevo en github?
- 15. colorante de código en github README
- 16. ¿Cómo se obtiene Show para el tipo definido en la biblioteca de otra persona?
- 17. ¿Cómo firmamos una aplicación de iPhone utilizando el programa Enterprise de otra persona?
- 18. ¿Cómo se puede agregar confirmaciones a una solicitud de extracción de github de otra persona a su repositorio si no puede comprometerse con su sucursal?
- 19. Código opinión de una sucursal en GitHub
- 20. Superación "Está siendo utilizado por otra persona o programa".
- 21. Haskell "no hacer nada" IO, o si otra persona sin
- 22. ¿Cómo incrustar código de repos en github markdown?
- 23. ¿Qué hace si el archivo en TFS está bloqueado por otra persona?
- 24. Cómo desbloquear un archivo de otra persona en Team Foundation Server
- 25. Si cambio el repo privado de Github de otra persona a mi cuenta, ¿aparecerá en mi cuenta como un repositorio público?
- 26. GitHub jsonp código fuente api
- 27. ¿Se puede evaluar el código en el contexto de una persona que llama en Ruby?
- 28. UINavigationControllerDelegate métodos no llamados (código de demostración en github)
- 29. ¿Cómo enviar mi ubicación (longitud y latitud) como una respuesta de sms a otra persona?
- 30. Cambiar la fuente predeterminada del código github
Otra ridícula cerca – surfer190
yo escribimos un paso más detallada a paso guía sobre la contribución a Concrete5 en Github, pero el proceso podría aplicarse a cualquier proyecto. [Verlo] (https://www.exchangecore.com/blog/contributing-concrete5-github/). –
Realmente no veo cómo esto 'no es constructivo'. Los votos y puntos de vista por sí solos proporcionan pruebas de que es una pregunta popular que las personas buscan responder. – Ian