Devido a restrições estranhas externas, não posso modificar o .gitignore
repositório. Existe uma maneira de ignorar arquivos e diretórios além de modificar um .gitignore
? Mesmo que seja uma solução global como uma configuração global que será aplicada a todos os meus repositórios.
fonte
update-index --assume-unchanged
@see stackoverflow.com/a/25253144/292408update-index --skip-work-tree
. Editei a resposta para adicionar alguns links às respostas antigas que ilustram esses doisupdate-index
comandos.Se você pode modificar,
.git/info/exclude
pode colocar as mesmas regras lá. Mas esse arquivo está apenas no seu repositório local.fonte
.git
diretório em uma submodule ....git
pasta de um sub-módulo está realmente emparent_repo/.git/modules/submodule_name
. Então você editariaparent_repo/.git/modules/submodule_name/info/exclude
Existem três maneiras de informar ao GIT quais arquivos ignorar:
.gitignore
arquivos$GIT_DIR/.git/info/exclude
core.excludesfile
configuraçãoOs dois últimos pontos podem resolver seu problema.
Para mais informações, consulte gitignore (5) .
fonte
Se você deseja apenas ter alguns arquivos locais no repositório e o local do subdiretório for flexível, você pode colocar seus arquivos
tracked_dir1/tracked_dir2/untracked_dir/
e adicionar umtracked_dir1/tracked_dir2/untracked_dir/.gitignore
conteúdo com, como:*
Ou seja,
fonte
Eu já estive em situações semelhantes, então estou adicionando minha solução preferida que não vejo mencionada. O problema
git update-index --assume-unchanged
nesse caso é que você não pode fazer isso para um arquivo não rastreado. Você disseEu vou assumir o que você quer dizer é que você não pode enviar nenhuma alteração para
.gitignore
a origem. Se for esse o caso, o que você pode fazer é adicionar o arquivo não rastreado ao seu local.gitignore
,git update-index --assume-unchanged .gitignore
para que sua alteração para.gitignore
nunca seja enviada por push. Agora você está ignorando o arquivo (possivelmente) não rastreado e não está afetando o.gitignore
arquivo remoto .fonte
Ignore as alterações locais nos arquivos rastreados:
git update-index --assume-unchanged my-file.php
Desconecte as alterações locais nos arquivos rastreados:
git update-index --no-assume-unchanged my-file.php
fonte:
git help update-index
fonte
Você pode usar o método gitignore global em vez de modificar o método do projeto https://help.github.com/articles/ignoring-files/#create-a-global-gitignore
fonte
Outra maneira:
.gitignore
git update-index --assume-unchanged .gitignore
fonte