traemos tipos repositorio remoto remote origin los example etiquetas eliminar cómo cambios git

repositorio - tipos de etiquetas en git



¿Cómo verificar los cambios en el repositorio Git remoto(origen)? (8)

Mi pregunta habitual es más bien "cualquier cosa nueva o modificada en repo", por lo que el cambio es útil. Lo encontré here .

git whatchanged origin/master -n 1

Pregunta

¿Cuáles son los comandos de Git para hacer el siguiente flujo de trabajo?

Guión

He clonado desde un repositorio e hice algunas confirmaciones propias a mi repositorio local. Mientras tanto, mis colegas se comprometieron con el repositorio remoto. Ahora quiero:

  1. Compruebe si hay nuevas confirmaciones de otras personas en el repositorio remoto, es decir, origin ?

  2. Digamos que hubo 3 confirmaciones nuevas en el repositorio remoto desde mi último intento, quisiera diferenciar las confirmaciones del repositorio remoto, es decir HEAD~3 con HEAD~2 , HEAD~2 con HEAD~1 y HEAD~1 con HEAD .

  3. Después de saber qué ha cambiado de forma remota, quiero obtener las últimas confirmaciones de los demás.

Mis hallazgos hasta ahora

Para el paso 2: conozco la notación de caret HEAD^ , HEAD^^ etc. y la notación tilde HEAD~2 , HEAD~3 etc.

Para el paso 3: Eso es, supongo, solo un git pull .


Puede git fetch origin para actualizar la rama remota en su repositorio para que apunte a la última versión. Para una diferencia contra el control remoto:

git diff origin/master

Sí, también puedes usar la notación de caret.

Si quieres aceptar los cambios remotos:

git merge origin/master


Una buena manera de tener una visión sintética de lo que está pasando en el "origen" es:

git remote show origin


Yo solo uso

git remote update git status

Este último luego informa de cuántos compromisos detrás de mi local está. (Si alguna)

entonces

git pull origin master

para actualizar mi local :)


ya que no ha sido sugerido hasta ahora ... y lo encuentro bastante útil ...

simplemente uso

git fetch origin

para obtener los cambios remotos, y luego veo tanto los confirmaciones remotas locales como las pendientes (y sus cambios asociados) con la herramienta agradable gitk ( https://git-scm.com/docs/gitk ) que involucra el argumento --todo como

gitk --all


git status no siempre muestra la diferencia entre el maestro y el origen / maestro incluso después de una búsqueda. Si desea que la combinación git fetch origin && git status funcione, debe especificar la información de seguimiento entre la sucursal local y el origen:

# git branch --set-upstream-to=origin/<branch> <branch>

Para la rama maestra:

git branch --set-upstream-to=origin/master master


Una solución potencial

Gracias a la solución de Alan Haggai Alavi, se me ocurrió el siguiente flujo de trabajo potencial:

Paso 1:

git fetch origin

Paso 2:

git checkout -b localTempOfOriginMaster origin/master git difftool HEAD~3 HEAD~2 git difftool HEAD~2 HEAD~1 git difftool HEAD~1 HEAD~0

Paso 3:

git checkout master git branch -D localTempOfOriginMaster git merge origin/master


git remote update && git status

Encontré esto en la answer para verificar si se necesita tirar en Git

git remote update para git remote update sus refs remotos. Entonces puedes hacer una de varias cosas, tales como:

  1. git status -uno le dirá si la sucursal que está rastreando está adelantada, atrasada o divergida. Si no dice nada, lo local y lo remoto son lo mismo.

  2. git show-branch *master le mostrará las confirmaciones en todas las ramas cuyos nombres terminan en master (por ejemplo, master y origin / master).

Si usa -v con git remote update , puede ver qué sucursales se actualizaron, por lo que realmente no necesita más comandos.