Pregunta comparar la rama local de git con la rama remota?


¿Cómo puedo ver el diff entre una sucursal local y una sucursal remota?


733
2017-11-25 23:58


origen


Respuestas:


Para actualizar las ramas de seguimiento remoto, debe escribir git fetch primero y luego:

git diff <masterbranch_path> <remotebranch_path>

Usted puede git branch -a para enumerar todas las ramas (local y remota) luego elegir el nombre de la rama de la lista (solo eliminar remotes/ desde el nombre de la sucursal remota.

Ejemplo: git diff master origin/master (donde "maestro" es la rama maestra local y "origen / maestro" es una raíz remota de origen y maestro).


297
2017-11-25 23:59



git diff <local branch> <remote>/<remote branch>

Por ejemplo git diff master origin/master, o git diff featureA origin/next

Por supuesto para tener dijo rama de rastreo remoto necesitas git fetch primero; y necesita que tenga información actualizada sobre las sucursales en el repositorio remoto.


1189
2017-11-26 01:50



Primer tipo

git branch -a

para obtener la lista de sucursales disponibles. En el resultado, es posible que vea algo así como

* master
  remotes/main/master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/mt
  remotes/upstream/master
  remotes/upstream/mt

Luego, muestra el diff

git diff --stat --color remotes/main/master..origin/master
git diff remotes/main/master..origin/master

160
2018-04-12 19:26



Si estás en una rama determinada y quieres compararla con una rama ascendente a la que estás rastreando, utiliza

git diff @{upstream}

Cortesía de esta respuesta, la documentación de git para especificando revisiones tiene:

<branchname>@{upstream}, p.ej. master@{upstream}, @{u}
  El sufijo    @{upstream} a un nombre de rama (forma abreviada) <branchname>@{u}) se refiere a   la rama que especifica la rama branchname está configurado para construir en   arriba de (configurado con branch.<name>.remote y branch.<name>.merge)   Una falta branchname por defecto a la actual.


75
2018-06-16 02:01



Entiendo mucho mejor la salida de:

git diff <remote-tracking branch> <local branch>

eso me muestra lo que se va a eliminar y lo que se va a agregar si presiono la rama local. Por supuesto, es lo mismo, solo lo contrario, pero para mí es más legible y estoy más cómodo mirando lo que va a suceder.


39
2018-04-14 19:38



La manera fácil:

git fetch
git log -p HEAD..FETCH_HEAD

Esto primero recuperará los cambios de su control remoto predeterminado (origen). Esto se creará automáticamente cuando clones un repositorio. También puede ser explícito: git fetch origin master.

Luego, git log se usa para comparar su rama actual con la que acaba de obtener. (Los -p (generar parche) opción es lo que muestra el diferencias.)


25
2017-10-09 21:31



Deje que su rama de trabajo sea el desarrollo y desee diferenciar entre la rama de desarrollo local y la rama de desarrollo remoto; en ese caso, la sintaxis debería ser como git diff remotes/origin/development..development
                  o

git fetch origin git diff origin/development 


11
2018-02-19 11:24



Así es como lo hago.

#To update your local.
git fetch --all

esto obtendrá todo del control remoto, por lo que cuando verifique la diferencia, comparará la diferencia con la rama remota.

#to list all branches
git branch -a

el comando anterior mostrará todas las ramas.

#to go to the branch you want to check difference
git checkout <branch_name>
#to check on which branch you are in, use
git branch
    (or)
git status

Ahora, puedes verificar la diferencia de la siguiente manera.

git diff origin/<branch_name>

esto comparará su rama local con la rama remota


11
2018-02-21 06:27