ver tag repositorio que modificados crear archivos git git-log

tag - git ver archivos modificados



¿Cómo buscar un repositorio Git por mensaje de confirmación? (7)

Revisé algún código fuente en GIT con el mensaje de confirmación "Build 0051".

Sin embargo, parece que ya no puedo encontrar ese código fuente. ¿Cómo extraigo esta fuente del repositorio de GIT, usando la línea de comandos?

Actualizar

  1. Comprobado en las versiones 0043, 0044, 0045 y 0046 usando SmartGIT.
  2. Desprotegido 0043, e ingresado en versiones hasta 0051 en una rama diferente.
  3. Revisé 0043 de nuevo.
  4. Ahora, 0051 ha desaparecido.

Actualizar

El código fuente definitivamente está ahí, ahora es una cuestión de verificarlo:

C:/Source>git log -g --grep="0052" commit 77b1f718d19e5cf46e2fab8405a9a0859c9c2889 Reflog: HEAD@{10} (unknown <Mike@.(none)>) Reflog message: commit: 20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052. Author: unknown <Mike@.(none)> Date: Fri Aug 19 17:24:51 2011 +0100 20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052. C:/Source>

Actualizar

Usó lo siguiente para recuperar el código fuente perdido:

C:/Source>git checkout HEAD@{10} Previous HEAD position was aa09ace... 20110819 - 1045 - GL: Intermediate version. File version: v0.5.0 build 0043. HEAD is now at 77b1f71... 20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.

Ahora, todo es visible de nuevo en SmartGit. Problema resuelto, ustedes son los mejores, especialmente @shelhamer!


¡Prueba esto!

git log | grep -b3 "Build 0051"


Aunque un poco tarde, hay :/ que es la notación dedicada para especificar una confirmación (o revisión) basada en el mensaje de confirmación, simplemente con el prefijo de la cadena de búsqueda con :/ , por ejemplo:

git show :/message

Aquí <message> puede ser un patrón complejo de expresiones regulares que consiste en espacios en blanco, así que asegúrese de citar / escapar cuando sea necesario, por ejemplo:

git log -1 -p ":/a few words"

Alternativamente, se puede especificar un punto de inicio, para encontrar el compromiso más cercano accesible desde un punto específico, por ejemplo:

git show ''HEAD^{/fix nasty bug}''

Ver: manual de revisiones de git .


Para buscar el registro de confirmación (en todas las ramas) para el texto dado:

git log --all --grep=''Build 0051''

Para buscar el contenido real de los compromisos a través del historial de un repo, use:

git grep ''Build 0051'' $(git rev-list --all)

para mostrar todas las instancias del texto dado, el nombre del archivo que contiene y la confirmación sha1.

Finalmente, como último recurso en caso de que su compromiso esté colgando y no esté conectado a la historia, puede buscar en el propio reflog con la bandera -g (abreviatura de --walk-reflogs :

git log -g --grep=''Build 0051''

EDITAR: si parece que ha perdido su historial, verifique el reflog como su red de seguridad. Busque la compilación 0051 en uno de los confirmados por

git reflog

Es posible que simplemente haya establecido su HEAD en una parte de la historia en la que la confirmación de "Compilación 0051" no esté visible, o puede que realmente la haya destruido. El artículo de gog-ready reflog puede ser de ayuda.

Para recuperar su confirmación del reflog : haga una comprobación de git de la confirmación que encontró (y, opcionalmente, haga una nueva rama o etiqueta de la misma como referencia)

git checkout 77b1f718d19e5cf46e2fab8405a9a0859c9c2889 # alternative, using reflog (see git-ready link provided) # git checkout HEAD@{10} git checkout -b build_0051 # make a new branch with the build_0051 as the tip


Pongo esto en mi ~ / .gitconfig:

[alias] find = log --pretty=/"format:%Cgreen%H %Cblue%s/" --name-status --grep

Luego puedo escribir "git find string" y obtengo una lista de todas las confirmaciones que contienen esa cadena en el mensaje. Por ejemplo, para encontrar todas las confirmaciones que hacen referencia al ticket # 33:

029a641667d6d92e16deccae7ebdeef792d8336b Added isAttachmentEditable() and isAttachmentViewable() methods. (references #33) M library/Dbs/Db/Row/Login.php a1bccdcd29ed29573d2fb799e2a564b5419af2e2 Add permissions checks for attachments of custom strategies. (references #33). M application/controllers/AttachmentController.php 38c8db557e5ec0963a7292aef0220ad1088f518d Fix permissions. (references #33) M application/views/scripts/attachment/_row.phtml 041db110859e7259caeffd3fed7a3d7b18a3d564 Fix permissions. (references #33) M application/views/scripts/attachment/index.phtml 388df3b4faae50f8a8d8beb85750dd0aa67736ed Added getStrategy() method. (references #33) M library/Dbs/Db/Row/Attachment.php


primero usé git log --oneline para encontrar el SHA del commit (Mensaje), luego usé git log --stat 8zad24d con el SHA (el primer ejemplo de parejas sha char (8zad24d)) para encontrar la información correcta


git log --grep="Build 0051"

debería hacer el truco


git log --grep=<pattern> Limit the commits output to ones with log message that matches the specified pattern (regular expression).