Lo sé, origen es un término para el repositorio remoto y maestro es la rama allí.
A propósito estoy omitiendo el "contexto" aquí y espero que la respuesta no dependa del contexto. Entonces, en las líneas de comando de git, ¿cuál es la diferencia entre origin / master y origin master . ¿Hay una manera no ambigua de entender cuándo usar origin / master y cuándo debo usar origin master ?
Respuestas:
En realidad, hay tres cosas aquí:
origin master
son dos cosas separadas, yorigin/master
es una cosa. Tres cosas en total.Dos ramas:
master
es una sucursal localorigin/master
es una rama remota (que es una copia local de la rama llamada "maestro" en el remoto llamado "origen")Un control remoto:
origin
es un control remotoEjemplo: tire en dos pasos
Como
origin/master
es una rama, puede fusionarla. Aquí hay un tirón en dos pasos:Paso uno, busca
master
desde el control remotoorigin
. Se buscará lamaster
ramaorigin
y se nombrará la copia localorigin/master
.A continuación, se fusionan
origin/master
enmaster
.Luego puede empujar sus nuevos cambios
master
aorigin
:Más ejemplos
Puede buscar varias ramas por nombre ...
Puedes fusionar múltiples ramas ...
fuente
git remote add home my-server:projects/my-project
agrega un control remoto llamado "hogar". Es posible que desee consultar la documentación: git-scm.com/docs/git-remoteorigin/master
es una entidad (ya que no es una rama física) que representa el estado de lamaster
rama en el control remotoorigin
.origin master
es la ramamaster
en el control remotoorigin
.Entonces tenemos estos:
Ejemplo (en sucursal local
master
):fuente
origin master
no es una rama ... de hecho son dos cosas separadas, "origen" (un control remoto) y "maestro" (una rama local).origin/master
es la rama maestra remota. La sucursal local es solo el maestro.origin/master
es lamaster
rama remotaPor lo general, después de hacer una
git fetch origin
para traer todos los cambios desde el servidor, harías unagit rebase origin/master
, para cambiar los cambios y mover la rama al último índice. Aquí,origin/master
se refiere a la rama remota, porque básicamente le está diciendo a GIT que vuelva a basar laorigin/master
rama en la rama actual.Lo usarías
origin master
al empujar, por ejemplo.git push origin master
es simplemente decirle a GIT que empuje al repositorio remoto lamaster
rama local .fuente
origin master
decirle al software que haga algo con lo que sea que esté en 'maestro' en el repositorio 'origen'.origin/master
Es una referencia de la misma maneraf3a4d5
oHEAD
es.origin es un nombre para la URL remota de git. Puede haber muchos más ejemplos de controles remotos a continuación.
en lo que respecta al origen / maestro (ejemplo bangalore / master), es puntero a "master" commit en el sitio de bangalore . Lo ves en tu clon.
Es posible que el bangalore remoto haya avanzado ya que ha hecho "recuperar" o "extraer"
fuente
Dado el hecho de que puede cambiar a
origin/master
(aunque en estado desconectado) mientras tiene el cable de red desconectado, debe ser una representación local de lamaster
sucursal enorigin
.fuente