Pregunta
¿Cuáles son los comandos de Git para hacer el siguiente flujo de trabajo?
Guión
Cloné desde un repositorio e hice algunas confirmaciones propias en mi repositorio local. Mientras tanto, mis colegas se comprometieron con el repositorio remoto. Ahora quiero:
Compruebe si hay nuevas confirmaciones de otras personas en el repositorio remoto, es decir
origin
.Dicen que hubo 3 nuevas confirmaciones en el repositorio remoto desde mi último tirón, me gustaría diff confirmaciones del repositorio remoto, es decir,
HEAD~3
conHEAD~2
,HEAD~2
conHEAD~1
yHEAD~1
conHEAD
.Después de saber qué cambió 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 intercalación HEAD^
, HEAD^^
etc. y la notación de tilde HEAD~2
, HEAD~3
etc.
Para el paso 3: Eso es, supongo, solo a git pull
.
Respuestas:
Podría
git fetch origin
actualizar la rama remota en su repositorio para apuntar a la última versión. Para una diferencia contra el control remoto:Sí, también puedes usar la notación de intercalación.
Si desea aceptar los cambios remotos:
fuente
git diff HEAD origin/master
por lo que el diff muestra lo que se aplicará si acepto los cambios remotos.Encontré esto en la respuesta a Verificar si se necesita extracción en Git
fuente
git pull <remote> <branch>
después tan pronto como necesite empujar, porque la punta de mi sucursal local estaba detrás de la contraparte remota.git remote update -v
que tengoerror: unknown switch `v'
git remote -v update
nogit remote update -v
Una buena manera de tener una visión sintética de lo que está sucediendo en el "origen" es:
fuente
Yo solo uso
Este último informa cuántos compromisos hay detrás de mi local. (Si alguna)
luego
para actualizar mi local :)
fuente
Mi pregunta habitual es más bien "cualquier cosa nueva o cambiada en el repositorio", por lo que lo que cambia es útil. Lo encontré aquí .
fuente
Una posible solución
Gracias a la solución de Alan Haggai Alavi se me ocurrió el siguiente flujo de trabajo potencial:
Paso 1:
Paso 2:
Paso 3:
fuente
git diff origing/master^ origing/master^^
git status
No siempre muestra la diferencia entre maestro y origen / maestro incluso después de una búsqueda. Si desea que la combinacióngit fetch origin && git status
funcione, debe especificar la información de seguimiento entre la sucursal local y el origen:Para la rama maestra:
fuente
ya que no se ha sugerido hasta ahora ... y me parece bastante útil ...
simplemente uso
para buscar los cambios remotos, y luego veo confirmaciones remotas locales y pendientes (y sus cambios asociados) con la buena herramienta gitk ( https://git-scm.com/docs/gitk ) que involucra el argumento --todos como
fuente