GitHub: ¿Por qué debería bifurcar?

Entiendo que bifurcar es clonar el repository en el lado del server. Pero no entiendo por qué haría eso.

¿Por qué no clonar el repository original en mi máquina, agregar mi código, luego pasar la nueva twig a GitHub y hacer una request de extracción?

De la documentation de Github

Un tenedor es una copy de un repository. Bifurcar un repository le permite experimentar libremente con los cambios sin afectar el proyecto original.

Más comúnmente, los tenedores se utilizan para proponer cambios al proyecto de otra persona o para usar el proyecto de otra persona como punto de partida para su propia idea.

https://help.github.com/articles/fork-a-repo/

Entiendo que bifurcar es clonar el repository en el lado del server […]

Eso es correcto. En GitHub, un tenedor es una copy de algún otro repository de GitHub, con una reference al repository desde el que fue copydo.

enter image description here

Observación: el concepto de una horquilla originada con GitHub; no es un concepto de Git.

[…] pero no entiendo por qué haría eso. ¿Por qué no clonar el repository original en mi máquina, agregar mi código, luego presionar la nueva twig en GitHub y hacer una request de extracción?

A less que tenga acceso de escritura al repository en cuestión, no puede simplemente presionarlo; su empuje será denegado por el server con un post de error del formulario

 remote: Permission to bos/text.git denied to Jubobs. fatal: unable to access 'https://github.com/bos/text/': The requested URL returned error: 403 

Ahí es donde un tenedor entra en juego. Al bifurcar el repo de otra persona, obtienes una copy a la que tienes acceso de escritura , es decir, a la que puedes enviar tus contribuciones. El flujo de trabajo completo es algo como esto:

  1. Identifique un área en el repository de Bob que se pueda mejorar.
  2. Tenedor que repos.
  3. Haga una copy de su tenedor en su máquina local.
  4. En ese clon, realice cambios, ejecute testings, cree confirmaciones (posiblemente en una nueva twig), etc.
  5. Opcionalmente, una vez que esté satisfecho con sus enmiendas al código de Bob, haga que su trabajo sea más presentable: ponga order / aplaque sus compromisos, escriba buenos posts de compromiso que respeten el estilo del boletín de Bob. También es posible que desee volver a establecer una base de su sucursal a la del repository de Bob.
  6. Empuja hacia tu tenedor.
  7. Emita una request de extracción a Bob y espere a que lo revise.
  8. Presione más se compromete con su tenedor hasta que Bob esté satisfecho con su trabajo.
  9. Bob fusiona su request de extracción; su trabajo se integra en su repository de GitHub.
  10. ¡Champán! Tu trabajo no fue en vano
  11. Para ahorrar espacio en los serveres de GitHub, y si no tiene la intención de contribuir con el repository de Bob en el corto ploop, puede eliminar su tenedor con security.

La bifurcación deja en claro que su repository se deriva del otro, marcando su repository como "bifurcado desde …" y, lo que es más importante, mostrará su depósito en la list original del proyecto original.

Una de las ventajas de esto es que, en el caso de que el proyecto original se suspenda mientras usted todavía está trabajando en él, las personas aún pueden encontrar su repository mirando en la list de references desde el repository principal.

Desde el punto de vista de github, pueden ahorrar algo de espacio de disco sabiendo que los objects de git entre tu y el repository original son los mismos y se pueden compartir

Además, creo que no se puede hacer una request de extracción de un repository que no sea un tenedor del original. Al less no pude hacerlo, tuve que bifurcar, empujar a la horquilla, solicitar una request de extracción.