Git encontra a linha # da mudança

Git encontra a linha # da mudança

Quero descobrir quando foi a última vez que uma propriedade CSS específica foi removida da fonte em meu branch atual (mestre). Escrevi:

git log -Smystring --source

Isso me deu um hash. Ativei o gitk e colei o hash e ele me deu uma lista enorme de arquivos, então suspeito que fossem apenas finais de linha. No entanto, procurei a string no gitk e não consegui encontrar a string. Talvez isso signifique que ele foi excluído, mas o gitk não deveria ser exibido - ...mystring...de qualquer maneira?

Como encontro a linha/arquivo em que minha string está? Vejo os últimos hashes usando o comando acima, mas não tenho ideia de como identificá-los.

Responder1

Algo como

git bisect start
git bisect bad AFTER
git bisect good BEFORE
git bisect run grep -v LINE FILE

onde BEFORE e AFTER são commits que contêm e não (respectivamente) a LINE em questão. Isto deve encontrar o último commit entre BEFORE e AFTER em que FILE contém LINE.

Depois de saber qual commit procurar, você pode usar

git grep -n LINE COMMIT:FILE

para localizar a LINHA e seu número de linha na versão apropriada do ARQUIVO.

informação relacionada