pendientes - subir archivos git
¿Cómo listar solo los nombres de archivo que cambiaron entre dos confirmaciones? (11)
Agregue el alias a su ~/.bash_profile
, luego ejecute, source ~/.bash_profile
; ahora, en cualquier momento, necesita ver los archivos actualizados en los últimos archivos de confirmación, ejecución, de su repositorio de git.
alias showfiles=''git show --pretty="format:" --name-only''
Tengo un montón de confirmaciones en el repositorio. Quiero ver una lista de archivos cambiados entre dos confirmaciones: de SHA1 a SHA2.
¿Qué comando debo usar?
Basándome en git diff --name-status
, escribí la extensión git-diffview git que presenta una vista de árbol jerárquico de lo que cambió entre dos rutas.
Como artfulrobot dijo en su respuesta:
git diff --name-status [SHA1 [SHA2]]
Mi ejemplo
git diff --name-status 78a09k12067c24d8f117886c4723ccf111af4997
4b95d595812211553070046bf2ebd807c0862cca
M views/layouts/default.ctp
M webroot/css/theme.css
A webroot/img/theme/logo.png
Esto mostrará los cambios en los archivos:
git diff --word-diff SHA1 SHA2
Para complementar la respuesta de @ artfulrobot, si desea mostrar archivos modificados entre dos sucursales:
git diff --name-status mybranch..myotherbranch
Tenga cuidado en la precedencia. Si coloca primero la rama más nueva, se mostrarán los archivos como eliminados en lugar de agregarse.
Agregar un grep
puede refinar las cosas aún más:
git diff --name-status mybranch..myotherbranch | grep "A/t"
Eso solo mostrará los archivos agregados en myotherbranch
.
Parece que nadie ha mencionado el interruptor --stat
:
$ git diff --stat HEAD~5 HEAD
.../java/org/apache/calcite/rex/RexSimplify.java | 50 +++++++++++++++++-----
.../apache/calcite/sql/fun/SqlTrimFunction.java | 2 +-
.../apache/calcite/sql2rel/SqlToRelConverter.java | 16 +++++++
.../org/apache/calcite/util/SaffronProperties.java | 19 ++++----
.../org/apache/calcite/test/RexProgramTest.java | 24 +++++++++++
.../apache/calcite/test/SqlToRelConverterTest.java | 8 ++++
.../apache/calcite/test/SqlToRelConverterTest.xml | 15 +++++++
pom.xml | 2 +-
.../apache/calcite/adapter/spark/SparkRules.java | 7 +--
9 files changed, 117 insertions(+), 26 deletions(-)
También hay --numstat
$ git diff --numstat HEAD~5 HEAD
40 10 core/src/main/java/org/apache/calcite/rex/RexSimplify.java
1 1 core/src/main/java/org/apache/calcite/sql/fun/SqlTrimFunction.java
16 0 core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
8 11 core/src/main/java/org/apache/calcite/util/SaffronProperties.java
24 0 core/src/test/java/org/apache/calcite/test/RexProgramTest.java
8 0 core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
15 0 core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
1 1 pom.xml
4 3 spark/src/main/java/org/apache/calcite/adapter/spark/SparkRules.java
y - --shortstat
$ git diff --shortstat HEAD~5 HEAD
9 files changed, 117 insertions(+), 26 deletions(-)
Pero para ver los archivos cambiados entre su rama y su ancestro común con otra rama (por ejemplo, origen / maestro):
git diff --name-only `git merge-base origin/master HEAD`
También tenga en cuenta, si solo desea ver los archivos modificados entre el último compromiso y el anterior. Esto funciona bien: git show --name-only
Utilice git log --pretty = oneline> C: / filename.log
que registrará solo un oneline (--pretty = oneline) que es el nombre del archivo modificado. También se registrarán todos los detalles a su archivo de salida.
git diff --name-only SHA1 SHA2
donde solo necesita incluir suficiente SHA para identificar los compromisos. También puedes hacerlo, por ejemplo.
git diff --name-only HEAD~10 HEAD~5
para ver las diferencias entre la décima última confirmación y la quinta última (más o menos).
git diff --name-status [SHA1 [SHA2]]
es como - solo para el nombre, excepto que obtiene un prefijo simple que le dice qué pasó con el archivo (modificado, eliminado, agregado ...)
git log --name-status --oneline [SHA1..SHA2]
es similar, pero las confirmaciones se enumeran después del mensaje de confirmación, por lo que puede ver cuándo se modificó un archivo.
Si está interesado en lo que sucedió con ciertos archivos / carpetas, puede adjuntar
-- <filename> [<filename>...]
a la versión degit log
.Si desea ver lo que sucedió para un solo compromiso, llámelo SHA1, luego haga
git log --name-status --oneline [SHA1^..SHA1]
Indicadores de estado del archivo:
M modificado - el archivo ha sido modificado
Copiar-editar C - El archivo ha sido copiado y modificado
R rename-edit - El archivo ha sido renombrado y modificado
Un agregado - Se ha agregado el archivo
D eliminado - el archivo ha sido eliminado
U no fusionado: el archivo tiene conflictos después de una fusión