De alguma forma, como os arquivos .orig são verificados no meu repositório git durante a mesclagem, que agora são exibidos no setor modificado e não rastreado. Mas não quero mais esses arquivos no meu repositório. Como fazer isso.
modified: Gemfile.lock.orig
# modified: Gemfile.orig
# modified: app/assets/images/bg_required.png.orig
# modified: app/assets/javascripts/application.js.orig
etc...
Qualquer ajuda será apreciada.
Respostas:
A melhor solução nesse caso é mantê-lo simples e se livrar desses arquivos independentemente do git:
Como alternativa, no Windows / PowerShell, você pode executar o seguinte comando
fonte
git clean -df
não faz isso. Por que devemos limpar manualmente o lixo que ele deixa para trás?Tente
git clean
mais informações que você pode encontrar aqui ou aquifonte
git rm <filename>
e, em seguida, confirmar.após esse arquivo add * .orig no git ignore.git clean -i
É realmente bom. ele fornecerá uma lista de arquivos que serão excluídos e opções de como lidar com a lista (filtre a lista, podendo excluir tudo da lista e algumas outras opções).git clean -f -e '*.*' -e '!*.orig'
existe apenas um padrão de exclusão, mas possui um pequeno suporte para padrões negativos. Portanto, podemos excluir todos os arquivos*.*
e negar a exclusão apenas dos*.orig
arquivos.você pode fazer:
Para obter mais informações, consulte o Git mergetool gera arquivos .orig indesejados
fonte
Você pode ignorar arquivos usando .gitignore
Basta colocar * .orig na lista como mostrado aqui
https://help.github.com/articles/ignoring-files
para excluir arquivos atuais, você pode criar um shell script e executar a partir da pasta do projeto, como abaixo
fonte
Infelizmente
git clean
, não funciona para mim porque eu*.orig
adicionei ao meu arquivo gitignore global, portanto eles também são ignorados da limpeza. Mesmo corrergit clean -x
não é bom porque não quero que todos os meus arquivos ignorados sejam excluídos.git clean -i
é útil, mas realmente não quero ter que revisar cada arquivo.No entanto, podemos usar um padrão de exclusão e negar a correspondência. Visualize com este comando:
Então, quando estiver confiante, passe a
force
bandeira para realmente excluí-los:Com base no comentário de leorleor
fonte
git rm Gemfile.lock.orig
e o restante dos arquivos que você não precisa.git commit --amend
Para remover completamente esses blobs,
git gc --prune=0 --aggressive
fonte
Para mim,
git clean -f
todos os arquivos * .oig foram removidos. E mantém os que já estavam lá antes.É assim que (quase) parecia após a mesclagem:
.idea/codeStyles/
já estava lá antes da mesclagem como um arquivo não rastreado..idea/misc.xml.orig
(e muito mais) teve que ser removido.=> Usando
git clean -f
:resultou em:
fonte
você pode simplesmente fazer
git status -s | grep "\.orig$" | awk '{print $2}' | xargs -n1 -r echo rm
TL; DR;
git status -s
permite que você obtenha todos os arquivos modificados / ausentes em relação ao índicegrep "\.orig$"
filtrar arquivos, mantendo o final com ".orig"awk '{print $2}'
lista o nome do arquivo (ignorando informações git, por exemplo, A, M, ??)xargs -n1 -r echo rm
imprime remove comandos em todos os argumentos (-n1: um de cada vez e -r: pula quando vazio), basta copiar e colar os comandos, verificando novamente os arquivos a serem removidos.fonte
git rm <file>
http://git-scm.com/docs/git-rm
Adicione também arquivos / diretórios que você deseja ignorar ao seu arquivo .gitignore.
fonte
git rm <file> <file>
Apenas liste-os.git rm
, basta usarrm
vez