Git es un sistema de control de versiones distribuido gratuito y de código abierto diseñado para manejar todo, desde proyectos pequeños hasta proyectos muy grandes, con rapidez y eficiencia. Git se basa en el desarrollo distribuido de software donde más de un desarrollador puede tener acceso al código fuente de una aplicación específica y puede modificar los cambios que pueden ver otros desarrolladores.
Entonces, ¿qué git diff realmente muestra todos los cambios realizados en el archivo después de hacer una confirmación, por ejemplo: un archivo, digamos at.txt, se modifica aquí después de hacer una confirmación y aquí podemos ver que hay una diferencia en el archivo después de una confirmación? comprometerse.
Ilustración: Cambios entre dos confirmaciones como se muestra a continuación de la siguiente manera:
Entonces, ahora, si desea ver los cambios entre los dos compromisos, use el siguiente comando: git diff commit-id1 commit-id 2 aquí podemos ver eso en nuestro primer Commit Hello Geeks for Geeks? está llegando y en nuestro segundo compromiso Hello Geeks for Geeks? viene aquí
Muestra la diferencia para los archivos en etapas
Entonces, ahora, si queremos ver los cambios entre la confirmación anterior y los archivos actualmente preparados, podemos usar el siguiente comando:
git diff –staged. Además, hay un comando más que es git diff –cached que podemos usar para el mismo caso de uso. Además, podemos usar
git status -v, que es como un sinónimo del comando –staged one.
Usando git diff para comparar ramas
Para ver los cambios entre diferentes ramas usaremos el comando git diff nombre_de_la_sucursal1 nombre_de_la_sucursal2. Ahora, si queremos ver todos los cambios en branch_2 , usaremos el comando git diff branch1_name branch2_name .
Aquí podemos ver que cuando el comando es git diff branch1_name brach2_name , muestra todos los cambios en branch_name 2 que también están en color verde, lo que significa que esos cambios se organizan y confirman en esa rama y en el segundo comando, que es justo al revés. del primer comando git diff branch2_name branch1_name muestra todos los cambios en color rojo, lo que significa que esos cambios no son rastreados por
git en branch1 eso es lo que cambia entre las 2 ramas. Entonces, ahora, si creo un archivo en branch1, lo agrego al área de preparación y luego lo confirmo, esos cambios se rastrean en branch1, no en branch2. Entonces, si uso el comando para mostrar todos los cambios en la rama 2, se mostrará el cambio realizado en la rama maestra en color rojo y el cambio realizado en la rama 2 solo será en color verde. De manera similar, si escribimos git diff branch2_name branch1_name entonces mostrará todos los cambios realizados en branch1 en color verde y los cambios realizados en branch2 en color rojo.
Mostrar cambios preparados y no preparados
Para ver todos los cambios preparados y no preparados en git, usamos el siguiente comando: git diff HEAD
También podemos usar un comando más para lograr este caso de uso particular git status -vv en realidad indica qué cambios están preparados para confirmación y cuáles no.
Aquí todos los cambios que están debajo del signo son los cambios que no están preparados para la confirmación.
Mostrar diferencias para un archivo o directorio específico
git diff file_name
Muestra todos los cambios entre la confirmación anterior del archivo especificado y la versión modificada localmente que aún no se ha preparado. Todos los cambios que se encuentran bajo el signo – no se organizan.
También funciona para directorios y muestra los cambios entre la confirmación anterior de todos los archivos en el directorio especificado y las
versiones modificadas localmente de estos archivos que no se han preparado. Aquí todos esos cambios que vienen en color verde son los cambios que no están escenificados.
Para mostrar la diferencia entre alguna versión de un archivo en una confirmación determinada y la versión HEAD local, puede especificar la identificación de confirmación de esa confirmación y compararla con la versión principal local que desee. La versión principal local es básicamente el cambio más reciente realizado en el archivo.
El cambio que viene en color verde es la versión principal local que es el estado actual del archivo, que es el cambio más reciente realizado en el archivo. Ahora, si desea ver la versión entre dos confirmaciones separadas: git diff commit-id-1 commit-id-2 file_name.
Aquí podemos ver la versión entre dos confirmaciones separadas en color verde para las respectivas identificaciones de confirmaciones. Para mostrar la diferencia entre la versión especificada por el hash a1e7045 y la última confirmación en la rama del directorio, podemos usar este comando:
git diff commit-id branch_name directory_name/
Mostrando diferencias entre la versión actual y la última versión
git diff HEAD^ HEAD
Este comando muestra los cambios entre la confirmación anterior y la confirmación actual.
Diferencial compatible con parches: a veces solo necesitamos una diferencia para aplicar usando un parche. Entonces el comando para eso sería:
git diff --no-prefix > some_file.patch
Esto creará un archivo de parche debido a este símbolo > y ese archivo de parche contendrá cambios del archivo, como cambios que están preparados y que no están preparados. En general nos muestra los cambios de linea las lineas en color verde son los cambios que se han hecho recientemente. Entonces funciona exactamente igual que el git diff.
Diferencia entre dos Commit o rama
Para ver la diferencia entre las dos ramas usamos el siguiente comando:
git diff branch1_name branch2_name
Para ver la diferencia entre dos ID de confirmación, se utiliza el siguiente comando:
git diff commit-id-1 commit-id-2
Para ver la diferencia con la rama actual
git diff name_of_branch
Para ver la diferencia con commit_id
git diff commit id
Para ver el resumen de cambios
git diff --stat branch or we can write git diff -stat commit_id
Para ver los archivos que cambiaron después de una determinada confirmación
git diff --name-only commit-id
Para ver archivos que son diferentes a una rama
git diff --name-only branch_name
Para ver archivos en una carpeta que cambió después de una confirmación
git diff --name-only commit-id folder-path
Publicación traducida automáticamente
Artículo escrito por ankitmahajan852 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA