Cuando lees en la git tag
página man :
Un aspecto importante de git es que está distribuido, y estar distribuido en gran medida significa que no hay un "flujo ascendente" o "flujo descendente" inherente en el sistema.
, eso simplemente significa que no hay un repositorio absoluto ascendente o un repositorio descendente.
Esas nociones son siempre relativas entre dos repositorios y dependen de la forma en que fluyen los datos:
Si "yourRepo" ha declarado "otherRepo" como uno remoto, entonces :
- está tirando de "otherRepo" aguas arriba ("otherRepo" es "aguas arriba de usted" y está "aguas abajo de otherRepo").
- está presionando hacia arriba ("otherRepo" todavía está "arriba", donde la información ahora vuelve a).
Tenga en cuenta el "desde" y "para": usted no es sólo "aguas abajo", usted es "aguas abajo de / para ", de ahí el aspecto relativo.
El giro del DVCS (Sistema de control de versiones distribuido) es: no tiene idea de qué es realmente en sentido descendente, además de su propio repositorio en relación con los repositorios remotos que ha declarado.
- usted sabe qué es aguas arriba (los repositorios de los que está tirando o empujando)
- no sabes de qué está hecho aguas abajo (los otros repositorios se mueven o empujan hacia tu repositorio ).
Básicamente:
En términos de " flujo de datos ", su repositorio está en la parte inferior ("aguas abajo") de un flujo que proviene de repositorios ascendentes ("pull from") y regresa a (el mismo u otro) repositorios ascendentes ("push to" )
Puede ver una ilustración en la git-rebase
página del manual con el párrafo "RECUPERANDO DE LA REEMBOLSO DE UPSTREAM":
Significa que se está retirando de un repositorio "en sentido ascendente" donde se realizó un rebase , y usted (el repositorio "en sentido descendente" está atascado con la consecuencia (muchos commits duplicados, porque la rama rebaseada en sentido ascendente recreó los commits de la misma rama que usted) tener localmente).
Eso es malo porque para un repositorio "ascendente", puede haber muchos repositorios descendentes (es decir, repos que se extraen del repositorio ascendente, con la rama rebaseada), todos ellos potencialmente teniendo que lidiar con los commits duplicados.
Nuevamente, con la analogía del "flujo de datos", en un DVCS, un comando incorrecto "aguas arriba" puede tener un " efecto dominó " aguas abajo.
Nota: esto no se limita a los datos.
También se aplica a los parámetros , ya que los comandos git (como los de "porcelana") a menudo llaman internamente otros comandos git (los de "plomería"). Ver rev-parse
página del manual :
Muchos comandos de git porcelainish toman una mezcla de banderas (es decir, parámetros que comienzan con un guión ' -
') y parámetros destinados al subyacentegit rev-list
comando que usan internamente y indicadores y parámetros para los otros comandos que usan aguas abajogit rev-list
. Este comando se usa para distinguir entre ellos.