2011-05-16 20 views
7

He eliminado un archivo un par de veces en git, pero sigue apareciendo a medida que se fusionan otras ramas; Creo que algo como esto:Cómo seguir un archivo en git

     o-- a topic --o 
        /    \ 
o-- [create file] --o-- [delete file] --o-- [file exists again] 

Es especialmente difícil para mí entender lo que está pasando ya que trabajamos con git uso de "comunicados internos", es decir, creo ramas de liberación que me empuje, que nuestro gestor de liberación tira y fusiones hasta dominar y atrapo a su maestro.

¿Cómo puedo averiguar dónde eliminé yo (u otra persona) un archivo y qué combinación (s) volvió a introducir el archivo? ¡Gracias!

+1

¿podría pensar en un escenario simple en el que su archivo vuelva a aparecer? No estoy logrando reproducir eso. – Mat

Respuesta

2

Cuando elimina un archivo en una rama y luego se fusiona en otra rama que contiene el archivo, el archivo permanece eliminado. Ahora, incluso si eliminó el archivo en la rama y fusionó esta rama con la otra, aún se eliminará.

git merge: Removing files I want to keep!

Si se ha añadido algún contenido de este archivo, sin embargo, mientras que la fusión, obtendrá el conflicto y que tendrá que añadir explícitamente este archivo y comprometerse para que entre de nuevo en la rama donde eliminó.


No es --follow en git log

--follow

Continue listing the history of a file beyond renames (works only for a 

una sola fila).

Pero no estoy seguro si eso es lo que estás buscando aquí. También puede buscar en History Simplification en git log Manual - http://git-scm.com/docs/git-log

+0

No, lo siento, eso solo me muestra un par de confirmaciones, pero no las otras cosas que le han sucedido al archivo. –

+0

Gracias por la edición, aceptaré su respuesta por el momento, pero de alguna manera la eliminación del archivo se perdió en alguna parte. La causa más probable, creo, es que sobreescribí la (s) rama (s) en algún momento cuando cambiamos los procedimientos de liberación. –

0

Lo que ocurre es que cuando combina la rama topic de nuevo, que contiene una gota/objeto que no existe en la rama main, por lo que la fusión creará un archivo que contiene el estado en el que se encontraba en la rama topic. Para detener este comportamiento, me fusionaría de la otra manera (fusionar main en topic) o rebase topic en main. El problema surge si cambia el archivo en topic y luego intentará aplicar los cambios a main, lo que dará como resultado la recreación del archivo.

+0

Lamentablemente, no puedo fusionar el tema principal con el maestro, ya que estamos siguiendo un procedimiento interno de publicación, pero es probable que tenga razón sobre la causa de la reaparición del archivo. Sin embargo, todavía no sé cómo rastrear el archivo. –

Cuestiones relacionadas