¿Qué significa git ‘remoto’ y ‘origen’?

Primero, miramos qué son las ramas:
Las ramas son fáciles, ocupan menos espacio, le permiten probar nuevas ideas, aislar características y proporcionar flexibilidad en colaboración. El maestro es la rama predeterminada que se crea y, a menudo, se denomina ‘línea principal’ o ‘troncal’ en proyectos empresariales. Esta línea normalmente está construida para entornos de desarrollo y control de calidad y, a veces, para producción. Alternativamente, algunas compañías prefieren hacer un corte RC al maestro que luego se basa en la producción y el maestro continúa construyendo en entornos Dev.

Los bloques en la figura a continuación representan confirmaciones y los números son solo los primeros 5 dígitos del SHA-1 asociado con esa confirmación.

Digamos que necesita experimentar con el algoritmo de búsqueda en su sitio web para hacerlo más rápido. Al mismo tiempo, no desea estropear su implementación actual en caso de que el nuevo experimento vaya hacia el sur. En este caso, crea una nueva rama y trabaja en ella. El maestro aún consta de su código probado original y puede elegir fusionar la rama “revisar búsqueda” en caso de éxito o simplemente descartarlo. Hermosa no es así?

Ahora, pasando a repositorios remotos o remotos –
Los controles remotos permiten la colaboración del proyecto. El repositorio remoto es el que está alojado en algún servidor remoto dentro de su organización o github. Esencialmente, no existe una diferencia real entre el repositorio GIT en su máquina local y el repositorio git en el servidor remoto. Por ahora, imagine que el servidor remoto está ejecutando algún software git que le permite comunicarse con múltiples clientes git al mismo tiempo.

Estás en la rama maestra. Si copia sus cambios en el repositorio remoto (operación push), ahora estarán presentes en el repositorio remoto para que otros accedan. Sin embargo, en su local, se crea otra rama llamada como origen / maestro que hace referencia a la rama del servidor remoto. El origen / maestro siempre intenta mantenerse actualizado con la rama del repositorio remoto.


Digamos que algún otro programador de su equipo se compromete con el maestro de sucursal remota, y usted necesita llevar esos cambios a nuestro local (operación de recuperación). Cuando busca, git sincroniza los cambios con su origen / maestro. No lo traerá a su rama maestra, hasta que lo combine.
Además de buscar, hay una operación de extracción que realiza las operaciones de extracción y fusión a la vez.


Tenga en cuenta que el maestro y el origen / maestro no son esencialmente dos ramas diferentes. Son solo dos punteros que apuntan a compromisos diferentes.


Además, tenga en cuenta que su código no es accesible para otros desarrolladores, incluso si se compromete, hasta que lo presione.

Si hay un repositorio de git, entonces todos los repositorios de git en el universo son sus “controles remotos”, incluido él mismo. En teoría, este mismo repositorio puede comunicarse con todos los repositorios git mediante el intercambio de datos. Sí, puede comunicarse consigo mismo a través de comandos git.

Cuando un repositorio se comunica con otro, tiene que conocer la ruta al otro repositorio. La ruta puede ser una ruta de archivo, una ruta http, una ruta ssh, una ruta git, etc. Sí, la ruta puede ser incluso la ruta local relativa “.”, Lo que significa el repositorio git actual.

Sin embargo, no todas las rutas son tan cortas como este punto, en la mayoría de los casos demasiado largas para recordarlas. Para facilitar las cosas, podemos crear alias para estos caminos. El nombre predeterminado es “origen”. Se puede crear automáticamente si ejecutamos un git-clone. En un repositorio creado por “git init”, donde no hay un alias remoto predeterminado llamado “origen”, podemos crear uno mediante “git remote add origin “. El nombre no tiene que ser “origen”. Puedes nombrarlo como quieras si Git permite el nombramiento.

Estrictamente hablando, un alias remoto se refiere a dos repositorios remotos, aunque los dos son el mismo en la mayoría de los casos. Si queremos comunicarnos con dos repositorios remotos, podemos hacer dos alias. Pero cuando uno es para leer y el otro es para escribir, un alias es suficiente. La sincronización entre los dos repositorios remotos se realiza en otro proceso.

git remote add origin https: //github/repo-read.git
git remote set-url –push origin https: //github/repo-write.git

En cuanto a “maestro”, es solo el nombre predeterminado para la primera rama. Puede cambiarle el nombre a lo que esté permitido.

Aquí hay un ejemplo.

git clone https: //github/b.git – a
cd a
git remote -v
# podemos ver “origen” se refiere a un repositorio de búsqueda y un repositorio de inserción, ambos https: //github/b.git

git remote add hello https: //github/d.git
git remote -v
# podemos ver “hola” se refiere a un repositorio de búsqueda y un repositorio de inserción, ambos https: //github/d.git

git remote set-url –push hello https: //github/c.git
git remote -v
# podemos ver “hola” se refiere a un repositorio push https: //github/c.git y un repositorio de búsqueda https: //github/d.git

git remote add self.
git remote -v
# podemos ver “self” se refiere a un repositorio de inserción, “.”, y un repositorio de recuperación, “.” también. Es el repositorio actual en sí.

#ahora vamos a crear una nueva rama new_master en b.git por git-push
git push origin HEAD: refs / heads / new_master
#equivalente a “git push https: //github/b.git HEAD: refs / heads / new_master”

#ahora tenemos que buscar de b.git
origen git fetch
#o “git fetch https: //github/b.git&quot ;

#ahora vamos a empujar al maestro local a c.git
git push hello master: maestro
#equivalente a “git push https: //github/c.git master: master”

git pull hola maestro
#it ​​obtiene de d.git en lugar de c.git
# si queremos extraer de c.git
git pull https: //github/c.git master
# “hola” no se usa aquí ya que la extracción “hola” es solo de b.git

#ahora nos vamos a comunicar con el repositorio actual
git push self HEAD: self_master
# crea una nueva sucursal local self_master. Equivalente a “git push. HEAD: self_master”. Los “.” o “self” se puede reemplazar con la ruta absoluta del repositorio actual.

“remoto” es solo un repositorio de git que no está en su computadora (por ejemplo, en github).

“origen” es el repositorio desde el que clonó su repositorio (por ejemplo, el de su github).

“maestro” es solo el nombre de la rama predeterminada. Se llama “maestro” porque generalmente es la rama que representa el código de producción, y que todas las demás ramas provienen y generalmente se unen.

Estos términos confunden mucho a los novatos.

  • remote – repositorio en una ubicación remota, es decir, en el sitio web de github (en sus servidores).
  • origen: repositorio que es la fuente (origen) en su sistema / PC (máquina local) que se debe mantener en el servidor remoto.
  • Nota 1: Incluso puede descargar / buscar un repositorio de github en su máquina local y el nombre predeterminado (etiqueta) de ese repositorio también sería “origen”.
  • Nota 2: También podemos cambiar el nombre del repositorio de “origen” a otro nombre. La gente generalmente mantiene el nombre del repositorio “origen” en sí. Pero es necesario cambiar el nombre del repositorio local si hay muchos repositorios (proyectos) en los que está trabajando.
  • master: esto es completamente diferente de los dos primeros términos. Es la rama principal en la que se realizan los cambios.
  • La rama creada automáticamente para usted cuando crea un repositorio git se llama “maestro”.

    Puede enumerar todas sus sucursales, incluidas las sucursales en repositorios remotos, con el comando

    git branch -a

    Un “remoto”, en terminología de git, es un nombre para un repositorio ubicado remotamente (donde “ubicado remotamente” solo significa que no es el repositorio en el árbol de trabajo donde escribe el comando; podría perfectamente estar en otro lugar la misma computadora). Puede enumerar todos sus controles remotos y sus ubicaciones con el comando

    git remote -v

    Cuando clonas un repositorio remoto, git crea automáticamente un control remoto para ti, llamado “origen”. Esto se usa de forma predeterminada por git push y git pull , que normalmente toman dos argumentos, un control remoto y una rama. Entonces ” git pull ” es equivalente a

    maestro de origen git pull

    Espero que esto ayude.

    Un control remoto es un repositorio que no está en su máquina local, sino que es un repositorio remoto que vive en otro lugar, generalmente en github. Origen es el nombre predeterminado para un repositorio remoto, pero puede cambiarlo. La gente a menudo lo deja como está. Maestro suele ser el nombre de una rama en su repositorio, es decir, su rama maestra. Puede tener varios repositorios remotos que pueden tener cualquier nombre que desee y puede tener varias ramas en ese repositorio que también puede nombrar lo que quiera. Maestro es solo un buen nombre para que pueda considerar esa rama como su rama de “línea principal”.

    Git Remote: antes de insertar cualquier código o algo primero, debemos asegurarnos de que nuestra máquina local comprenda dónde necesita insertar el código, es decir, cuál es la ubicación donde se deben insertar los códigos, así que en nuestro directorio de trabajo local escribimos

    git remote add origin “ruta del repositorio remoto”

    Así que, básicamente, ‘ origen’ es un alias de su repositorio remoto tan grande nombre.

    Al hacer esto, su directorio de trabajo local comprenderá que cuando vaya a presionar será la ruta de mención anterior con alais como origen . Por lo tanto, no fue necesario mencionar la ruta del repositorio remoto todo el tiempo.

    Lo que significa que en lugar de origen puede dar cualquier nombre.

    ¿Qué significa git “remoto” y “origen”?

    Estoy tan confundido por las palabras remoto, origen y maestro.

    Master es la etiqueta de la rama principal.

    Remoto es la copia en la ubicación remota de esa rama que desea verificar, por ejemplo, comparar la rama remota maestra con la copia de la rama maestra local de su rama.

    El origen es el indicador de ubicación de dónde está realmente esa ubicación “remota”. Por ejemplo, si ejecutamos un comando:

    origen de empuje git

    Eso significa lo mismo que “oye ’empuje el último conjunto de cambios confirmados en cualquier rama en la que me encuentre actualmente en la ubicación remota que definí cuando configuré el repositorio”.

    More Interesting

    Si quiero aprender software y desarrollo web, ¿debo estudiar informática o ingeniería informática?

    ¿Qué es un acoplador? ¿Cómo es importante para las personas de pruebas de software?

    ¿Cuál de estas habilidades es más fácil y rápidamente comercializable si estoy aprendiendo desde cero: desarrollo web y de aplicaciones, ingeniería de software o ingeniería eléctrica?

    ¿Por qué las pruebas de mutación son importantes en la ingeniería de software?

    ¿Qué significa Software as a Service (SaaS)?

    ¿Qué necesito saber para crear un software similar a salesforce?

    ¿Qué tan común es para un diseñador de interacción convertirse en desarrollador web o ingeniero de software?

    Cómo practicar patrones de diseño en el desarrollo de software después de leer libros

    Soy un estudiante de ingeniería. Estoy harto de la ingeniería a pesar de que estoy haciendo software. También estoy bastante harto de la vida en India. Quiero establecerme en Estados Unidos, principalmente en Nueva York. ¿Qué tipo de trabajos puedo obtener y cómo puedo conseguirlos para que me ayuden a vivir allí?

    ¿Dónde podría conseguir un trabajo con mis habilidades?

    ¿Debo ir a terapia ocupacional o informática?

    ¿Por qué Brian Bi aterrizó como ingeniero de software después de tener títulos en física y química?

    ¿Qué hace un ingeniero de Linux todo el día en el trabajo?

    ¿Los ingenieros de software de Silicon Valley a menudo tienen una visión inflada de su propia inteligencia?

    ¿GOTO todavía se considera dañino?