Diferença entre o Bisect e o Blame | Git: Controle e compartilhe seu código | Alura - Cursos online de tecnologia
Diferença entre o Bisect e o Blame
Referente ao curso Git: Controle e compartilhe seu código, no capítulo Controle avançado de alterações e atividade Controle avançado de alterações
Ademir José de Carvalho Júnior
Na aula que fala sobre o Bisect, fiquei na dúvida, se não seria mais simples encontrar o commit desejado através do comando git blame (que lista o commit que gerou cada linha de um arquivo).
Há algum caso que o blame não atenda o que o Bisect faz?
os dois códigos são usados pra buscar commits, como você disse. Na maior parte das vezes que usei os dois, estava a procura de um commit que causou algum bug bem específico. Assim, vou te responder na perspectiva de alguém que está a procura de um bug.
O blame está diretamente ligado a um arquivo específico. Você sabe qual o arquivo especificamente que está gerando o bug, mas não sabe a partir de qual commit o bug foi inserido. Então você pode rodar um git blame arquivo e aí ver todos os commits que mexeram nesse arquivo.
Como você não sabe qual dos commits foi o responsável, você vai ter que que voltar um a um até achar o commit que causou o bug.
E nesse caso são pra bugs nos quais você consegue apontar o código de algum arquivo como causador.
Se você não tiver ideia de qual arquivo está gerando o bug, ou se suspeitar que um conjunto de códigos em arquivos diferentes pode estar gerando o bug, você não vai ter onde fazer um blame. Não vai ter ideia de quais commits olhar. E é aí que entra o bisect
O bisect vai te ajudar a achar o commit, sem saber necessariamente quais arquivos são os causadores. Você vai navegar por vários commits, parando a cada commit pra testar seu código e ver se o bug está lá ou não, até o momento que chegar no commit que gerou o bug. Quando achar o commit, você vai conseguir ver quais arquivos foram alterados naquele commit e provavelmente achar a fonte do bug.
PS: Essa busca pelos seus commits usando o bisect é uma busca binária. O que significa que a busca é mais otimizada e não vai ter que olhar todos os commits do seu repositório.