you when what want the tag see remote practice good follow delete branches all git github git-clone git-fork

when - ¿Las horquillas de git son clones de git en realidad?



what is the command to delete a remote branch in git? (10)

Sigo escuchando a la gente decir que están codificando código en git. El "tenedor" de Git suena sospechosamente como un "clon" de Git más alguna disposición psicológica (sin sentido) para renunciar a futuras fusiones. No hay comando de bifurcación en git, ¿verdad?

Creo que tienes una idea graciosa de lo que significa "forking". Es un concepto, no un comando específicamente compatible con ningún sistema de control de versiones.

El tipo de horquilla más simple es sinónimo de ramificación. Cada vez que creas una rama, independientemente de tu VCS, has "bifurcado". Estos tenedores suelen ser muy fáciles de volver a unir.

El tipo de bifurcación del que está hablando, en el que una parte separada toma una copia completa del código y se aleja, necesariamente sucede fuera del VCS en un sistema centralizado como Subversion. Un VCS distribuido como Git tiene un soporte mucho mejor para manipular todo el código base y comenzar un nuevo proyecto de manera efectiva.

Git (no GitHub) admite de forma nativa "forking" un repo completo (es decir, clonándolo) de varias maneras:

  • Cuando clonas, se crea un origin remoto llamado para ti.
  • por defecto, todas las ramas en el clon rastrearán sus equivalentes de origin
  • es trivialmente fácil recuperar y fusionar cambios del proyecto original que bifurcaste.

Git hace que los cambios de contribución a la fuente de la bifurcación sean tan sencillos como pedirle a alguien del proyecto original que se retire de usted, o solicitar el acceso de escritura para impulsar los cambios. Esta es la parte que GitHub facilita y estandariza.

¿Alguna angustia sobre Github extendiendo git en esta dirección? ¿O algún rumor de git que absorba la funcionalidad?

No hay angustia porque tu suposición es incorrecta. GitHub "extiende" la funcionalidad de bifurcación de Git con una interfaz gráfica de usuario agradable y una forma estandarizada de emitir solicitudes de extracción, pero no agrega la funcionalidad a Git. El concepto de repo-forking completo se integra directamente en el control de versiones distribuidas a un nivel fundamental. Podría abandonar GitHub en cualquier momento y seguir presionando / tirando de los proyectos que ha "bifurcado".

Sigo escuchando a la gente decir que están codificando código en git. El "tenedor" de Git suena sospechosamente como un "clon" de Git más alguna disposición psicológica (sin sentido) para renunciar a futuras fusiones. No hay comando de bifurcación en git, ¿verdad?

Github hace que las horquillas sean un poco más reales al grapar la correspondencia en él. Es decir, presiona el botón de bifurcación y luego, cuando presiona el botón de solicitud de extracción, el sistema es lo suficientemente inteligente como para enviar un correo electrónico al propietario. Por lo tanto, es un poco de un baile alrededor de la propiedad de repo y permisos.

¿Si no? ¿Alguna angustia sobre Github extendiendo git en esta dirección? ¿O algún rumor de git que absorba la funcionalidad?


"Bifurcación" en este contexto significa "Haga una copia de su código para que pueda agregar mis propias modificaciones". No hay mucho más que decir. Cada clon es esencialmente una bifurcación, y depende del original decidir si tirar de los cambios de la bifurcación.


Aparte del hecho de que la clonación es del servidor a su máquina y forking está haciendo una copia en el mismo servidor, una diferencia importante es que cuando clonamos, obtenemos todas las ramas, etiquetas, etc. Pero cuando nos bifurcamos, realmente solo obtén los archivos actuales en la rama maestra, nada más que eso. Esto significa que no obtenemos las otras sucursales, etc. Por lo tanto, si tiene que fusionar algo con el repositorio original, es una fusión entre repositorios y definitivamente necesitará privilegios más altos.

Fork no es un comando en git, es solo un concepto que Github implementa. Recuerde que Git fue diseñado para funcionar en un entorno de igual a igual sin la necesidad de sincronizar cosas con cualquier copia maestra. El servidor es solo otro igual, pero lo vemos como una copia maestra.


Creo que fork es una copia de otro repositorio pero con la modificación de su cuenta. por ejemplo, si clona directamente otro repositorio localmente, el origen del objeto remoto todavía está usando la cuenta de la que está clonando. No puedes comprometer y aportar tu código. Es sólo una copia pura de los códigos. De lo contrario, si bifurca un repositorio, clonará el repositorio con la actualización de la configuración de su cuenta en su cuenta de github. Y luego clonando el repositorio en el contexto de su cuenta, puede confirmar sus códigos.


El bifurcación se realiza cuando decides contribuir a algún proyecto. Debería hacer una copia de todo el proyecto junto con sus registros de historial. Esta copia se realiza completamente en su repositorio y una vez que realiza estos cambios, emite una solicitud de extracción. Ahora le toca al propietario de la fuente aceptar su solicitud de extracción e incorporar los cambios en el código original.

Git clone es un comando real que permite a los usuarios obtener una copia de la fuente. git clone [URL] Esto debería crear una copia de [URL] en su propio repositorio local.


En los términos más simples,

Cuando dice que está bifurcando un repositorio, básicamente está creando una copia del repositorio original con su ID de GitHub en su cuenta de Github.

y

Cuando dice que está clonando un repositorio, está creando una copia local del repositorio original en su sistema (pc / lappy) directamente sin tener una copia en su cuenta de Github.


Hay un malentendido aquí con respecto a lo que es un "tenedor". De hecho, una bifurcación no es más que un conjunto de ramas por usuario. Cuando empujas a una bifurcación, presionas al repositorio original porque ese es el ÚNICO repo.

Puede probar esto presionando a una bifurcación, observando el compromiso y luego yendo al repositorio original y utilizando el ID de compromiso, verá que el compromiso está "en" el repositorio original.

Esto tiene mucho sentido, pero está lejos de ser obvio (solo lo descubrí accidentalmente recientemente).

Cuando John forks repo SuperProject lo que parece suceder es que todas las ramas en el repositorio de origen se replican con un nombre como "John.master" y "John.new_gui_project", etc.

Github "esconde" el "juan". de nosotros y nos da la ilusión de que tenemos nuestra propia "copia" del repositorio en Github, pero no lo tenemos ni es necesario.

Así que el "maestro" de la rama de mi tenedor en realidad se llama "Korporal.master", pero la interfaz de usuario de Github nunca revela esto, mostrándome solo el "maestro".

Esto es más o menos lo que creo que sucede bajo el capó de todos modos, basado en las cosas que he estado haciendo recientemente y cuando lo analizas, es un muy buen diseño.

Por esta razón, creo que sería muy fácil para Microsoft implementar las horquillas Git en la oferta de servicios de Visual Studio Team.


La clonación implica hacer una copia del repositorio de git a una máquina local, mientras que forking está clonando el repositorio en otro repositorio. La clonación es solo para uso personal (aunque pueden producirse futuras combinaciones), pero con el bifurcación está copiando y abriendo una nueva ruta de proyecto posible


Sí, Fork es un clon. Surgió porque, no puedes presionar a las copias de otros sin su permiso . Lo que hacen es hacer una copia para usted ( fork ), donde también tendrá permiso de escritura.

En el futuro, si el propietario real u otros usuarios con una bifurcación como sus cambios pueden devolverlo a su propio repositorio. Alternativamente, puede enviarles una "solicitud de extracción".


Fork , en el contexto de GitHub, no extiende Git.
Solo permite la clonación en el lado del servidor.

Cuando clona un repositorio de GitHub en su estación de trabajo local, no puede contribuir de nuevo al repositorio ascendente a menos que se declare explícitamente como "contribuyente". Eso es porque su clon es una instancia separada de ese proyecto. Si desea contribuir al proyecto, puede usar forking para hacerlo de la siguiente manera:

  • clonar el repositorio de GitHub en su cuenta de GitHub (que es la parte Fork , un clon en el lado del servidor)
  • contribuya confíe a ese repositorio de GitHub (está en su propia cuenta de GitHub, por lo que tiene todo el derecho de presionarlo)
  • señalizar cualquier contribución interesante al repositorio original de GitHub (que es la parte de "solicitud de extracción" por medio de los cambios que realizó en su propio repositorio de GitHub)

Compruebe también " Colaborativo GitHub Workflow ".

Si desea mantener un enlace con el repositorio original (también denominado en sentido ascendente), debe agregar un control remoto que refiera ese repositorio original.
Consulte " ¿Cuál es la diferencia entre el origen y el flujo ascendente en github? "

Y con Git 2.20 (Q4 2018) y más, la recuperación desde la horquilla es más eficiente, con las islas delta .