working with requests git github

git - with - pull request process



¿Cuál es la diferencia entre Forking y Cloning en GitHub? (8)

Básicamente sí. Un fork es solo una solicitud para que GitHub clone el proyecto y lo registre con su nombre de usuario ; GitHub también realiza un seguimiento de la relación entre los dos repositorios, por lo que puede visualizar los commits y pulls entre los dos proyectos (y otros forks).

Todavía puede solicitar que las personas extraigan de su repositorio clonado, incluso si no utiliza el fork , pero tendría que tratar de hacerlo público. O envíe los parches de los desarrolladores (vea el git format-patch ) que pueden aplicar a sus árboles.

Me gustaría saber las diferencias entre hacer un fork de un proyecto y hacer un clone de él.

¿Puedo enviar solo solicitudes de extracción a través de GitHub si he bifurcado un proyecto?


Cuando dice que está bifurcando un repositorio, básicamente está creando una copia del repositorio bajo su ID de GitHub. El punto principal a tener en cuenta aquí es que cualquier cambio realizado en el repositorio original se reflejará de nuevo en sus repositorios bifurcados (es necesario recuperar y volver a establecer la base). Sin embargo, si realiza algún cambio en su repositorio bifurcado , deberá crear explícitamente una solicitud de extracción al repositorio original . Si su solicitud de extracción es aprobada por el administrador del repositorio original , sus cambios se comprometerán / fusionarán con la base de código original existente. Hasta entonces, sus cambios se reflejarán solo en la copia que ha bifurcado .

En breve:

El modelo Fork & Pull permite que cualquier persona bifurque un repositorio existente e impulse los cambios a su bifurcación personal sin que se le otorgue acceso al repositorio de origen. El mantenedor del proyecto debe extraer los cambios en el depósito de origen.

Tenga en cuenta que después de bifurcar puede clonar su repositorio (el que está debajo de su nombre) localmente en su máquina. Haga cambios en él y empújelo a su repositorio bifurcado. Sin embargo, para reflejar sus cambios en el repositorio original, su solicitud de extracción debe ser aprobada.

Un par de otras dicusiones interesantes -

¿Los git bifes realmente son clones?

¿Cómo actualizo un repositorio bifurcado de GitHub?


En caso de que haya hecho lo que el encuestador insinuó (se olvidó de bifurcar y solo localmente clonó un repositorio, realizó cambios y ahora necesita emitir una solicitud de extracción), puede volver al camino correcto:

  1. tenedor el repositorio que desea enviar solicitud de extracción a
  2. empuja tus cambios locales a tu control remoto
  3. solicitud de extracción de problemas

En pocas palabras, Forking es quizás lo mismo que "clonar bajo su ID / perfil de GitHub". Un tenedor es en cualquier momento mejor que un clon, con algunas excepciones, obviamente. El repositorio bifurcado siempre se está supervisando / comparando con el repositorio original a diferencia de un repositorio clonado. Eso le permite realizar un seguimiento de los cambios, iniciar solicitudes de extracción y también sincronizar manualmente los cambios realizados en el repositorio original con la horquilla.


Mientras que la respuesta de @ AniketThakur es muy buena. Nadie ha respondido la siguiente pregunta todavía.

¿Puedo enviar solo solicitudes de extracción a través de GitHub si he bifurcado un proyecto?

No. Si colabora en un repositorio, puede: Crear un clon local. Haz una sucursal local. Agregue commits a esa rama. Empuje la rama local de regreso a github (creando una rama remota en el proceso). Realice una solicitud de extracción solicitando que esa rama se fusione en la rama principal (o en la rama que desee).


Otra diferencia sutil y extraña en GitHub es que los cambios en las horquillas no se cuentan en el registro de actividad hasta que los cambios se tomen en el repositorio original. Además, para cambiar un tenedor en un clon adecuado, debes contactar al soporte de Github, aparentemente.

De por qué mis contribuciones no aparecen :

Commit fue hecho en un tenedor

Los compromisos hechos en un tenedor no contarán para sus contribuciones. Para hacer que cuenten, debes hacer una de las siguientes cosas:

Abra una solicitud de extracción para fusionar sus cambios en el repositorio principal. Para separar la horquilla y convertirla en un repositorio independiente en GitHub, comuníquese con el Soporte de GitHub . Si la horquilla tiene su propia horquilla, informe al servicio de asistencia si las horquillas se moverán con su depósito a una nueva red o permanecerán en la red actual. Para obtener más información, consulte " Acerca de las horquillas ".


Un clon es donde tiene la duplicación adecuada y la separación entre dos versiones (posiblemente diferentes) de un repositorio. Cuando se modifica un repositorio, el nuevo contenido debe copiarse activamente en el otro repositorio utilizando un comando de inserción. Y cambios en el otro repo recuperado.

Cuando bifurca un repositorio, en un servidor, no hay necesidad de duplicar el contenido porque ambos repos usarán el mismo contenido de [objeto fijo] desde ese mismo servidor. El ''truco'' es administrar los diferentes puntos de vista del usuario para que cada usuario crea tener una copia personal completa del repositorio. Empujar y recuperar entre horquillas es simplemente actualizar los punteros del usuario.

En un nivel inferior, git hace lo mismo internamente. Si tiene tres archivos diferentes, cada uno con Hello World , entonces git simplemente ''ahorquilla'' su única copia del blob Hello World y lo ofrece en cada uno de los tres lugares según sea necesario.

La capacidad de bifurcar en el servidor significa que la gran reserva de almacenamiento de Github no es tan grande en promedio, ya que cada entidad comparte el único repositorio subyacente.


  • El proyecto de Forked está en su repositorio en línea (repositorio).
  • El proyecto clonado está en su máquina local (generalmente clono después de bifurcar el repositorio).

Puede comprometerse en su repositorio en línea (o comprometerse con su repositorio local y luego enviarlo a su repositorio en línea), y luego enviar una solicitud de extracción.

El gerente de proyectos puede aceptarlo para obtener los cambios en su versión principal en línea.