O git commit --amend sobrescreve completamente o commit antigo?

4

Para um repositório local, eu acidentalmente enviei um arquivo com uma senha que não deveria sair para o público (ele estava lá para um propósito de teste preguiçoso ...).

Salvei o arquivo novamente com a senha e usei git commit --amend para confirmar o arquivo novamente. A senha agora está indo bem ou ainda pode ser encontrada em algum lugar no repositório?

    
por Den 21.04.2013 / 10:53

1 resposta

7

Se você não tiver executado git push em um repositório remoto antes de fazer alterações, a confirmação não estará disponível nesse repositório remoto. Também não será empurrado no futuro.

No entanto, o seu repositório local ainda contém o commit antigo que você pode ver executando git reflog .

A confirmação atual (antiga) pode ser mostrada com um comando como:

git show HEAD@{1}

(assumindo que você tenha feito algo e, em seguida, corrigido sem mais commits / mudança de comutação)

Para se livrar desse commit localmente, você deve dar uma olhada em git gc . Quando você o executa como está, ele remove os commits mais antigos com uma certa idade.

    
por 21.04.2013 / 11:56

Tags