Você já encontrou algum erro ou teve problemas com commits do Git ao trabalhar com o Git? Talvez um segredo ou dados sensíveis tenham sido salvos de forma errada. Felizmente, você pode processar seus arquivos com o Git e removê-los do commit e corrigir o histórico.
Se você fez vários commits ou clonou um repositório com um histórico de commits já existente, geralmente você deseja olhar para trás e ver todos os commits que foram feitos. E neste tutorial, você aprenderá como remover uma entrada do seu histórico do Git.
Continue lendo e salve o dia com o Git!
Pré-requisitos
Este tutorial consiste em instruções passo a passo. Se você quiser acompanhar, certifique-se de ter o seguinte:
- A local machine to test the Git commands – This tutorial uses Windows 10, but later versions will also work.
- Git Bash – Este tutorial usa o Git Bash 2.36.
Removendo um arquivo do commit do Git
Quando você trabalha com o Git em equipe, você faz centenas de commits diariamente. Como resultado, há grandes chances de você precisar desfazer um commit específico, como devido a um arquivo incorreto ou vários arquivos. Essa necessidade geralmente é causada por uma mudança no código ou configuração e se torna um problema.
Para resolver esse problema, você precisa remover o arquivo ou vários arquivos do commit do Git executando comandos do Git. Você usará uma das ferramentas populares para remover um único arquivo do commit do Git, a ferramenta Git Bash.
1. Abra a ferramenta Git Bash em sua máquina Windows.
2. Em seguida, execute o comando abaixo para criar uma pasta de repositório e mudar para essa pasta. Esses comandos não fornecem saída no terminal. Mas certifique-se de substituir ~/Desktop/Repository/repo1 pelo caminho e nome da pasta preferidos.
3. Execute os seguintes comandos para inicializar seu repositório e criar dois arquivos de texto chamados test1.txt e test2.txt.

4. Agora, execute o comando abaixo para verificar o status do commit do Git.
Depois de executar o comando, você notará que os commits não estão sendo rastreados e ainda não foram confirmados, como mostrado abaixo.

5. Execute o comando git add abaixo para adicionar os dois arquivos de texto que você criou no passo três (test_file1.txt e test_file2.txt) ao seu repositório local.
Este comando não fornece uma saída, mas adiciona os arquivos sem enviá-los para o repositório remoto.
6. Em seguida, execute o comando git commit abaixo para que o Git acompanhe o progresso e as alterações que você fez no repositório local.

7. Após fazer o commit, execute o comando abaixo para remover um arquivo específico (test_file2.txt) do commit do Git.

8. Por fim, execute novamente o comando git status abaixo para verificar o estado do repositório.
Como você pode ver abaixo, o arquivo foi removido da área de preparação (o commit do Git) e mostra o arquivo (test_file2.txt) sob Arquivos Não Rastreados.

Removendo Todos os Arquivos Comitados Recentemente
Você acabou de aprender a remover um arquivo específico do commit do Git. Mas geralmente, você terá que excluir vários arquivos, e o Git está à altura da tarefa com o comando git reset. O comando git reset é uma ferramenta complexa, mas ao mesmo tempo versátil, para desfazer alterações no repositório.
Para ver como o git reset funciona, você vai fazer o commit de alguns arquivos, depois redefinir as alterações para remover os arquivos recentemente comitados armazenados no commit do Git:
1. Crie dois novos arquivos de texto com os nomes test_file3.txt e test_file4.txt na pasta ~/Desktop/Repositório/repo1.
2. Em seguida, execute o comando git add abaixo, que não fornece uma saída, mas adiciona os novos arquivos de texto ao seu repositório local (~/Desktop/Repositório/repo1).
3. Execute o comando git commit abaixo para comitar os arquivos para que o Git acompanhe o progresso e as mudanças feitas no repositório.

4. Agora, execute o comando abaixo para verificar o estado do seu repositório local.
Como você pode ver abaixo, a saída exibe a mensagem “nothing to commit”, indicando que tudo está em ordem no repositório.

5. Em seguida, execute o comando git reset abaixo para reverter os commits feitos recentemente no passo três. Este comando não fornece saída, mas remove os arquivos test_file3.txt e test_file4.txt.
Você também pode usar git reset –soft HEAD^ para remover todos os arquivos que foram commitados até agora.
6. Em seguida, execute novamente o comando git status abaixo para verificar o estado do repositório.
Abaixo, a saída mostra os arquivos test_file3.txt e test_file4.txt que precisam ser commitados. Essa saída indica os arquivos a serem removidos do commit do Git.

Removendo Commits Específicos do Histórico do Git
Remover todos os arquivos commitados funciona perfeitamente se você quiser começar do zero. Mas e se você precisar remover apenas um commit específico? O comando git revert resolverá o problema, desde que você saiba o ID do commit.
No último passo da seção “Removendo Todos os Arquivos Commitados Recentemente”, você notou que os commits não foram commitados, mas sim alterados. Agora você irá commitar as alterações para ver o comando git revert
em ação.
Execute o comando git commit
abaixo para commitar as alterações recentes no seu repositório local.
Após executar o comando, você notará que ambos os arquivos de texto são novamente confirmados, e o ID do commit é 0315b85, como mostrado abaixo.

Agora, execute o comando git revert
abaixo para reverter o commit que você fez na etapa anterior. Certifique-se de substituir 0315b85
pelo ID do seu commit.
Abaixo, você pode ver que dois arquivos que você confirmou recentemente foram excluídos.

Excluindo um Diretório do Histórico de Commits do Git
Agora, você já sabe como excluir um arquivo confirmado, mas e quanto a um diretório? Excluir um diretório de um commit do Git é semelhante à exclusão de arquivos.
1. Execute os comandos abaixo, que não fornecem saída, mas realizam o seguinte:
- Crie uma pasta chamada
myfolder
dentro do seu repositório local (~/Desktop/Repository/repo1).
- Crie um arquivo chamado l.txt dentro da pasta ~/Desktop/Repository/repo1/myfolder.
2. Em seguida, execute os comandos git abaixo para adicionar a nova pasta (~/Desktop/Repository/repo1/myfolder) ao seu repositório local.

3. Execute o seguinte comando git rm para remover a pasta (myfolder) que você confirmou na etapa dois.

4. Por fim, execute o comando git status para verificar o status do repositório e ver se a pasta foi removida.
Abaixo, você pode ver que o diretório inteiro (myfolder) foi excluído com sucesso, junto com o arquivo l.txt dentro dele.

Conclusão
No tutorial, você aprendeu a trabalhar com commits no Git, como remover um commit específico, um arquivo ou vários arquivos. Você também abordou a exclusão de uma pasta inteira dentro do repositório local e fez commit das alterações.
Neste ponto, você pode realizar commits com confiança no seu repositório e remover commits que considere desnecessários sem bagunçar as coisas.
Com base no que você aprendeu neste tutorial, qual método você acha excelente para lidar com commits na sua equipe?
Source:
https://adamtheautomator.com/git-and-remove-from-commit/