uteis - removendo git
Remover um arquivo de um repositório Git sem excluí-lo do sistema de arquivos local (6)
O Git permite ignorar esses arquivos, assumindo que eles não foram alterados. Isso é feito executando o comando
git update-index --assume-unchanged path/to/file.txt
. Depois de marcar um arquivo como tal, o git ignorará completamente quaisquer alterações nesse arquivo; eles não aparecerão ao executar o status do git ou git diff, nem serão confirmados.
(De https://help.github.com/articles/ignoring-files )
Portanto, não excluí-lo, mas ignorando as alterações nele para sempre. Eu acho que isso só funciona localmente, então os colegas de trabalho ainda podem ver as alterações a menos que eles executem o mesmo comando acima. (Ainda precisa verificar isso embora.)
Nota: Isso não está respondendo a pergunta diretamente, mas é baseado em perguntas de acompanhamento nos comentários das outras respostas.
Meu commit inicial continha alguns arquivos de log. Eu adicionei *log
ao meu .gitignore
, e agora eu quero remover os arquivos de log do meu repositório.
git rm mylogfile.log
removerá um arquivo do repositório, mas também o removerá do sistema de arquivos local.
Como posso remover este arquivo do repositório sem excluir minha cópia local do arquivo?
Além disso, se você tiver enviado dados confidenciais (por exemplo, um arquivo contendo senhas), você deve excluí-lo completamente do histórico do repositório. Aqui está um guia explicando como fazer isso: http://help.github.com/remove-sensitive-data/
Como por minha resposta aqui: https://.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository
Para remover pasta / diretório ou arquivo somente do repositório git e não do local, tente 3 etapas simples.
Etapas para remover o diretório
git rm -r --cached File-or-FolderName
git commit -m "Removed folder from repository"
git push origin master
Passos para ignorar essa pasta nos próximos commits
Para ignorar essa pasta das próximas confirmações, crie um arquivo na raiz chamado .gitignore e coloque o nome dessas pastas nele. Você pode colocar quantos quiser
arquivo .gitignore será semelhante a este
/FolderName
Para arquivo único:
git rm --cached mylogfile.log
Para um único diretório:
git rm --cached -r mydirectory
Uma solução mais genérica:
Edite o arquivo
.gitignore
.ECHO mylogfile.log >> .gitignore
Remova todos os itens do índice.
git rm -r -f --cached .
Reconstruir índice.
git add .
Faça novo commit
git commit -m "Removed mylogfile.log"
Você também pode remover arquivos do repositório com base no seu .gitignore sem excluí-los do sistema de arquivos local:
git rm --cached `git ls-files -i -X .gitignore`
Ou, alternativamente, no Windows Powershell:
git rm --cached $(git ls-files -i -X .gitignore)