Proyecto de forking en el proceso de Github

25

Hay un proyecto en Github que principalmente me gusta y quiero usar. Hay algunas cosas que quiero hacer de manera diferente / eliminar que no tienen sentido para lo que quiero / necesito. También quiero agregar algunas cosas también.

Según tengo entendido, debo bifurcar el proyecto y puedo hacer los cambios que quiera y volver a mi bifurcación. A partir de ahí, también quiero ocasionalmente meter en mi tenedor los cambios del proyecto original para obtener las últimas correcciones de errores / características.

¿Estoy fuera de la base de cómo creo que debería funcionar? ¿Cómo traería los cambios del proyecto original?

Mike Wills
fuente
1
Puede encontrar esto útil: stackoverflow.com/questions/3329943/…
Michael Durrant

Respuestas:

18

Haz el tenedor, luego haz una rama inmediatamente.

Ahora tiene un maestro "intacto" que puede actualizarse para obtener los últimos cambios con git pulls.

Mantenga su sucursal local sin presionar a control remoto y puede hacer lo rebaseque hará lo siguiente por usted:

  • guarda tus cambios
  • aplique los últimos cambios de maestro a su sucursal (los que vinieron de la actualización desde el control remoto)
  • vuelva a aplicar los cambios nuevamente, además del código que se actualizó desde el maestro (u otra rama original).

Cuando finalmente haya terminado con él, vuelva a fusionarlo en el maestro (o cualquier rama de la bifurcación inicial) localmente y luego envíe la solicitud de extracción para que el propietario real lo incorpore.

Ese es un flujo de trabajo (o "forkflow") de todos modos, según tengo entendido. Otros pueden comentar o corregir o agregar más detalles.

Michael Durrant
fuente
3
Esto parece un poco fuera de tema. Aborda el "cómo" sin mucha explicación de lo que estás haciendo, y evita entrar en la pregunta de etiqueta. Puede mejorar esto dando una visión general de alto nivel de lo que está logrando y explicando por qué es de buena educación hacerlo de esta manera.
Justin Morgan
10

Básicamente lo tienes: una vez que creas un tenedor, es tu propia caja de arena.

Creo que lo principal que debe hacer es crear inmediatamente una rama después de la bifurcación, para mantener la línea de desarrollo original separada de la suya. Ya sea que se desarrolle en esta rama o en maestría es en gran medida una cuestión de gusto personal. Lo único que me impediría desarrollarme en master es que es demasiado fácil hacer un "git pull" y obtener lo incorrecto.

parsifal
fuente