Posso dizer ao git para ignorar arquivos modificados (excluídos), mas que não devem ser confirmados?
A situação é que eu tenho um subdiretório no repositório que contém coisas das quais não estou interessado, então excluí-o para evitar que apareça nas conclusões automáticas e similares (no IDE).
Mas agora, se eu adicionar essa pasta ao .gitignore, simplesmente nada muda, todas as coisas são mostradas como excluídas pelo status do git.
Existe uma maneira de fazer o git ignorá-lo de qualquer maneira?
(Como alternativa, como estou usando o git-svn, posso confirmar as alterações no git local e garantir que elas não sejam repassadas ao repositório svn?)
Respostas:
verifique a página do manual git-update-index e o bit --assume-inalterado e relacionados.
quando tenho seu problema eu faço isso
ou um arquivo específico
fonte
git update-index --no-assume-unchanged config/database.yml
--assume-unchanged
.Uma opção mais nova e melhor é a
git update-index --skip-worktree
que não será perdida em uma redefinição forçada ou em uma nova alteração de um pull.Consulte a página do manual em http://schacon.github.com/git/git-update-index.html
E uma comparação em http://fallengamer.livejournal.com/93321.html
fonte
skip-worktree
, encontrar esses arquivos é um pouco complicado. A única maneira que eu sei égit ls-files -v |grep -v '^H'
. Além disso, muitas ferramentas da GUI não conhecem esse recurso e podem produzir erros engraçados se, por exemplo,checkout
falhar devido a arquivos modificados "ocultos".Use este código
fonte
Os arquivos rastreados não podem ser ignorados; portanto, você deverá removê-los do seu índice primeiro. Adicione um
.gitignore
que ignore os diretórios que você não deseja, depois exclua-os e remova todos os retardatáriosgit rm --cached
.fonte
O que eu costumo fazer é
fonte