Después de una extracción de Git, su salida ofrece un resumen sobre la cantidad de cambio.
¿Cómo puedo ver los cambios detallados de cada uno de los archivos?
Bien, aquí está mi pregunta a Jefromi:
¿Cómo sé si estaba tirando para dominar? Todo lo que hice fue "git pull".
¿Qué señala master y cuál es la diferencia entre master y HEAD, los dos jefes predeterminados de Git?
¿Cómo veo el cambio detallado en un archivo específico?
¿Cómo veo de nuevo el cambio en la salida de resumen por última
git pull
vez?¿Cuál es la diferencia entre
git diff
ygit whatchanged
?
git diff
claramente una diferencia, mientrasgit whatchanged
que muestra claramente una lista de información de confirmación, cada una de las cuales contiene una lista de los archivos que han cambiado.Respuestas:
Supongamos que estás tirando para dominar. Puede consultar la posición anterior de
master
bymaster@{1}
(o inclusomaster@{10.minutes.ago}
; consulte la sección de revisión de especificaciones de la página de manual de git-rev-parse ), para que pueda hacer cosas comoVer todos los cambios:
git diff master@{1} master
Vea los cambios en un archivo dado:
git diff master@{1} master <file>
Ver todos los cambios dentro de un directorio dado:
git diff master@{1} master <dir>
Vea el resumen de cambios nuevamente:
git diff --stat master@{1} master
En cuanto a su pregunta de "cómo sé si estoy en master" ... bueno, el uso de ramas es una parte importante del flujo de trabajo de Git. Siempre debe saber en qué rama se encuentra: si extrajo los cambios, ¡querrá llevarlos a la rama correcta! Puede ver una lista de todas las ramas, con un asterisco junto al que está actualmente desprotegido, con el comando
git branch
. El nombre de la rama actual también se imprime junto con la salida degit status
. Le recomiendo hojear las páginas del manual de comandos para usar: es una excelente manera de aprender poco a poco.Y su última pregunta:
HEAD
es el nombre de la rama actualmente desprotegida. De hecho, puede usarHEAD
y tambiénHEAD@{1}
en este contexto, pero es un poco más robusto usar las ramas, ya que si va y echa un vistazo a otra rama.HEAD
ahora es esa segunda rama, yHEAD@{1}
es ahoramaster
, ¡no lo que quieres!Para evitar tener que hacer muchas preguntas pequeñas como esta, probablemente deberías echar un vistazo a un tutorial de Git. Hay un millón en la web, por ejemplo:
fuente
git diff master@{1} master
lo contrario, el cambio se muestra "hacia atrás", es decir, inserciones convertirse supresiones etc.git diff master@{1} master
no funcionó para mí, sino quegit diff master~1 master
hizo el trabajo para mí.git reflog master
entender qué.fatal: ambiguous argument 'firstDesign@': unknown revision or path not in the working tree.
Sigo recibiendo este error. Aunque git reflog firstDesign tiene esta salida .Digamos que haces un git pull así:
Puede ver la diferencia de lo que cambió usando los números de revisión:
fuente
git diff --stat a407564..9f52bed
" o simplemente para un resumen "git diff --summary a407564..9f52bed
"El comando en sí funciona así:
y por defecto se refiere a la rama actual. Puede verificar sus sucursales usando
Esto mostrará una lista de sus sucursales locales y remotas, por ejemplo, por ejemplo (se agregó un
---
divisor entre local y remoto para que quede más claro)Cuando eche un vistazo a un repositorio remoto, verá a qué se refiere:
enumerará como el siguiente:
Por lo tanto, es bastante fácil asegurarse de dónde tirar y empujar.
La forma más fácil y elegante (imo) es:
Esto le dará dos bloques de información sobre los cambios entre su último tirón y el estado actual del trabajo. Ejemplo de salida (agregué un
---
como divisor entre--stat
y--dirstat
salida para que quede más claro):fuente
Esta forma es un poco hacky, pero te permitirá usar herramientas gráficas como
gitk
ogitg
ogit-gui
:La respuesta con la mayoría de los votos positivos ofrece la mejor manera de usar la herramienta git, pero uso este método porque puedo utilizar herramientas con GUI para ver los cambios: P
Luego tendría el paso adicional de hacer un
git checkout .
y luegogit pull
volver a hacerlo para poder extraer y fusionar correctamente, pero valoro la capacidad de examinar las diferencias en una GUI lo suficiente como para lidiar con los dos pasos adicionales.fuente