Deseja que a pasta de cache seja excluída completamente do repositório ou apenas seu conteúdo?
Gareth
1
Estou supondo que o OP tenha vários diretórios de cache, cujo conteúdo deve ser ignorado, mas deseja garantir que esses diretórios sejam criados para quem clona o repositório.
Mark Longair
@ Gareth: como as pastas vazias não são rastreadas com o git, se o conteúdo for ignorado, a pasta também será, não é?
Eckes
3
Eu só mencionei isso porque algumas pessoas usam arquivos escondidos (comumente .gitkeep) para indicar um diretório que deve ser mantido
Gareth
2
é /no final o que o faz saber que é um diretório que ele deve ignorar?
Charlie Parker
Respostas:
1595
Crie um arquivo nomeado .gitignoreno diretório do seu projeto. Ignore os diretórios inserindo o nome do diretório no arquivo (com uma barra anexada):
Em um prompt do cmd do Windows, você pode usar 'edit .gitignore' ou 'notepad .gitignore' para criar o arquivo correto.
Joey Green
44
Ou você também pode usar 'touch .gitignore' no prompt de comando do Windows git bash e isso criará o arquivo nomeado corretamente, que por sua vez poderá ser editado pelo bloco de notas ou algo semelhante ...
SGB
39
Ou apenas crie um arquivo chamado .gitignore. com o explorer e edite-o com o bloco de notas (o ponto à direita será removido). Dessa forma, você não precisa usar o prompt de comando.
P. Galbraith
6
Ou você pode vim .gitignore do terminal. :)
MollyCat
34
Ou, que surpreendentemente não foi mencionado, mesmo que seja o caminho mais rápido, basta digitar "echo folder_to_ignore >> .gitignore" no console.
Godsmith
205
Por padrão, o Windows Explorer será exibido .gitignorequando, de fato, o nome do arquivo for .gitignore.txt.
Git não usará .gitignore.txt
E você não pode renomear o arquivo para .gitignore, porque o Windows Explorer acha que é um arquivo do tipo gitignore sem nome.
Solução sem linha de comando:
Você pode renomear um arquivo para ".gitignore". e criará ".gitignore"
Isso funciona? Eu sempre disse às pessoas para abrir o bloco de notas e, na caixa de diálogo Salvar como, digite o nome do arquivo entre aspas duplas, por exemplo, ".gitignore"e ele o salva sem adicionar automaticamente uma extensão.
Arrowmaster
9
Arrumado. Incluir um período à direita funciona. O Explorer retira o último período, resultando em um arquivo chamado ".gitignore". Eu acho que o método de cotações é mais limpo e menos provável de criar surpresas.
Triynko 8/09/11
4
Ou, na caixa de diálogo Salvar como, altere o tipo de arquivo para "Todos os arquivos ( . )" - o Windows não acrescentará nenhuma extensão.
OsakaWebbie
5
ou em bash git basta digitar ".gitignore toque" na sua pasta
Rayjax
3
".gitignore."- Isso é ótimo truque! Eu sempre tive problemas com .htaccessbem ...
Obmerk Kronen
105
Parece que, para ignorar arquivos e diretórios, existem duas maneiras principais:
.gitignore
Colocando o .gitignorearquivo na raiz do seu repositório além da .gitpasta (no Windows, verifique a verdadeira extensão do arquivo e, em seguida, faça .gitignore.(com o ponto no final para criar uma extensão de arquivo vazia))
Fazendo a configuração global ~/.gitignore_globale executando git config --global core.excludesfile ~/.gitignore_globalpara adicionar isso à sua configuração do Git
Nota: os arquivos rastreados antes podem ser rastreados executando git rm --cached filename
Exclusão de repositório - Para arquivos locais que não precisam ser compartilhados, basta adicionar o padrão ou o diretório ao arquivo .git/info/exclude. Essas regras não são confirmadas e, portanto, não são vistas por outros usuários . Mais informações estão aqui .
Para fazer exceções na lista de arquivos ignorados, consulte esta pergunta .
bom trabalho apontando o git rm --cached <filename>. Absolutamente crítico para repositórios que existiam ANTES de você criar o.gitignore
MaurerPower
2
git rm --cached <filename> fixa o problema que eu estava tendo com .gitignore :)
JeremyFelix
1
Sim, o nome do arquivo git rm --cached é absolutamente crucial. Isso estava me deixando louco, já que o git ainda preparava arquivos que eu claramente declara serem ignorados (gitignore criado após o commit inicial). Muito obrigado!
Potaito
1
Resolveu o meu problema. O Git estava rastreando a pasta do fornecedor no meu repositório laravel, embora eu tivesse adicionado a pasta do fornecedor no gitignore. Muito obrigado.
Jayant
44
Eu tive alguns problemas ao criar um arquivo no Windows Explorer com um .no início.
Uma solução alternativa era entrar no shell de comando e criar um novo arquivo usando "editar".
ou apenas adicione um extra .no final, para que o explorer pare de pensar que .gitignoreé a extensão. Em seguida, na entrada que arrastando ponto sem extensão só fica comido e você é deixado com .gitignore TL; DR: tentar nomeá-lo .gitignore.=> você acabar com.gitignore
leerssej
43
Para instruir o Git a ignorar determinados arquivos ou pastas, você precisa criar um .gitignorearquivo.
Mas no Windows Explorer você precisa fornecer um nome para o arquivo. Você simplesmente não pode criar um arquivo com apenas uma extensão. O truque é criar um arquivo de texto vazio e ir para o prompt de comando e alterar o nome do arquivo para .gitignore:
ren "New Text Document.txt" .gitignore
Agora abra o arquivo com o seu editor de texto favorito e adicione os nomes de arquivo / pasta que deseja ignorar. Você também pode usar curingas como este: *.txt.
Ou type nul > .gitignorepara criar um arquivo vazio
Castro Roy
Ou apenas chamar o arquivo .gitignore.quando as extensões de arquivo não estão escondidos em seu Windows Explorer
Vairis
22
Se você deseja manter uma pasta e não os arquivos dentro dela, basta colocar um arquivo ".gitignore" na pasta com "*" como conteúdo. Este arquivo fará o Git ignorar todo o conteúdo do repositório. Mas .gitignoreserá incluído no seu repositório.
$ git add path/to/folder/.gitignore
Se você adicionar uma pasta vazia, você receberá esta mensagem (.gitignore é um arquivo oculto)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
No Windows, há um problema extra com barras. Excluindo um único diretório no .gitignore com
dir_to_exclude /
possivelmente funcionará, mas excluindo todos os diretórios com
/
causa problemas quando você tem nomes de arquivos com espaços (como my file.txt) no diretório: Git Bash escapa esses espaços com uma barra invertida (como my\ file.txt) e o Git for Windows não faz distinção entre /e \.
Para excluir todos os diretórios, use melhor:
** /
Dois asteriscos consecutivos significam o conteúdo do diretório.
Também no \.git\infodiretório de projetos, há um arquivo de exclusão que é efetivamente a mesma coisa que .gitignore(eu acho). Você pode adicionar arquivos e diretórios para ignorar isso.
e adicionando os diretórios que você deseja ao final do arquivo, assim:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
Eu adicionei as pastas "assets" e "compiled" à lista de arquivos e diretórios a serem ignorados.
Estou usando o Atom no Windows 10. Está funcionando! Valeu cara!
precisa
Tentei todos os outros com minha configuração atual e essa foi a minha resposta definitiva.
Xedret 14/11/19
9
No Unix:
touch .gitignore
No Windows:
echo > .gitignore
Esses comandos executados em um terminal criarão um .gitignorearquivo no local atual.
Em seguida, basta adicionar informações a este .gitignorearquivo (usando o Notepad ++ por exemplo) quais arquivos ou pastas devem ser ignorados. Salve suas alterações. É isso aí :)
... com o que .gitignorevocê descreve. Isso lhe dará uma git statussaída como:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... se os index.htmlarquivos ainda não foram adicionados ao repositório. (O Git vê que existem arquivos não-registrados nos diretórios de cache, mas apenas os reporta.) Para corrigir isso, verifique se você adicionou e confirmou os index.htmlarquivos:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... e sua git statusvontade se parecerá com:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(Obviamente, você também quer se comprometer .gitignore. Eu estava sendo preguiçoso neste caso de teste.)
Você provavelmente não quer cometer .gitignore especialmente porque é provável que você deseja acompanhar as mudanças a ele, e assim é o seu time (se você estiver trabalhando com um). Veja stackoverflow.com/a/767213/123033
Dave Everitt
2
@ Dave Everitt: É exatamente por isso que eu disse: "Obviamente, você quer cometer .gitignore também".
precisa saber é o seguinte
6
No Windows e Mac, se você deseja ignorar uma pasta chamada Flower_Data_Folder no diretório atual, pode:
Eu tive problemas semelhantes. Eu trabalho em uma cadeia de ferramentas do Windows com um repositório compartilhado com os funcionários do Linux, e eles criam arquivos com o mesmo nome (exceto no caso) em uma determinada pasta.
O efeito é que eu posso clonar o repositório e ter imediatamente dezenas de arquivos 'modificados' que, se eu fizessem check-in, causariam estragos.
Eu tenho o Windows definido para maiúsculas e minúsculas e o Git para não ignorar maiúsculas e minúsculas, mas ainda falha (nas chamadas da API do Win32 aparentemente).
Se eu fizer o gitignore dos arquivos, lembre-se de não acompanhar o arquivo .gitignore.
O link parece estar quebrado (ele é redirecionado primeiro para a versão 'https'): "Falha na conexão segura. Ocorreu um erro durante uma conexão com archive.robwilkerson.org. PR_END_OF_FILE_ERROR"
Peter Mortensen
0
Basta criar um .gitignorearquivo na sua pasta do projeto. Em seguida, adicione o nome da pasta nela, por exemplo:
.gitkeep
) para indicar um diretório que deve ser mantido/
no final o que o faz saber que é um diretório que ele deve ignorar?Respostas:
Crie um arquivo nomeado
.gitignore
no diretório do seu projeto. Ignore os diretórios inserindo o nome do diretório no arquivo (com uma barra anexada):Mais informações estão aqui .
fonte
Por padrão, o Windows Explorer será exibido
.gitignore
quando, de fato, o nome do arquivo for.gitignore.txt
.Git não usará
.gitignore.txt
E você não pode renomear o arquivo para
.gitignore
, porque o Windows Explorer acha que é um arquivo do tipo gitignore sem nome.Solução sem linha de comando:
fonte
".gitignore"
e ele o salva sem adicionar automaticamente uma extensão.".gitignore."
- Isso é ótimo truque! Eu sempre tive problemas com.htaccess
bem ...Parece que, para ignorar arquivos e diretórios, existem duas maneiras principais:
.gitignore
.gitignore
arquivo na raiz do seu repositório além da.git
pasta (no Windows, verifique a verdadeira extensão do arquivo e, em seguida, faça.gitignore.
(com o ponto no final para criar uma extensão de arquivo vazia))~/.gitignore_global
e executandogit config --global core.excludesfile ~/.gitignore_global
para adicionar isso à sua configuração do GitNota: os arquivos rastreados antes podem ser rastreados executando
git rm --cached filename
Exclusão de repositório - Para arquivos locais que não precisam ser compartilhados, basta adicionar o padrão ou o diretório ao arquivo
.git/info/exclude
. Essas regras não são confirmadas e, portanto, não são vistas por outros usuários . Mais informações estão aqui .Para fazer exceções na lista de arquivos ignorados, consulte esta pergunta .
fonte
git rm --cached <filename>
. Absolutamente crítico para repositórios que existiam ANTES de você criar o.gitignore
Eu tive alguns problemas ao criar um arquivo no Windows Explorer com um
.
no início.Uma solução alternativa era entrar no shell de comando e criar um novo arquivo usando "editar".
fonte
.
no final, para que o explorer pare de pensar que.gitignore
é a extensão. Em seguida, na entrada que arrastando ponto sem extensão só fica comido e você é deixado com.gitignore
TL; DR: tentar nomeá-lo.gitignore.
=> você acabar com.gitignore
Para instruir o Git a ignorar determinados arquivos ou pastas, você precisa criar um
.gitignore
arquivo.Mas no Windows Explorer você precisa fornecer um nome para o arquivo. Você simplesmente não pode criar um arquivo com apenas uma extensão. O truque é criar um arquivo de texto vazio e ir para o prompt de comando e alterar o nome do arquivo para
.gitignore
:Agora abra o arquivo com o seu editor de texto favorito e adicione os nomes de arquivo / pasta que deseja ignorar. Você também pode usar curingas como este:
*.txt
.fonte
type nul > .gitignore
para criar um arquivo vazio.gitignore.
quando as extensões de arquivo não estão escondidos em seu Windows ExplorerSe você deseja manter uma pasta e não os arquivos dentro dela, basta colocar um arquivo ".gitignore" na pasta com "*" como conteúdo. Este arquivo fará o Git ignorar todo o conteúdo do repositório. Mas
.gitignore
será incluído no seu repositório.Se você adicionar uma pasta vazia, você receberá esta mensagem (.gitignore é um arquivo oculto)
Então, use "-f" para forçar a adição:
fonte
No Windows, há um problema extra com barras. Excluindo um único diretório no .gitignore com
possivelmente funcionará, mas excluindo todos os diretórios com
causa problemas quando você tem nomes de arquivos com espaços (como
my file.txt
) no diretório: Git Bash escapa esses espaços com uma barra invertida (comomy\ file.txt
) e o Git for Windows não faz distinção entre/
e\
.Para excluir todos os diretórios, use melhor:
Dois asteriscos consecutivos significam o conteúdo do diretório.
fonte
Também no
\.git\info
diretório de projetos, há um arquivo de exclusão que é efetivamente a mesma coisa que.gitignore
(eu acho). Você pode adicionar arquivos e diretórios para ignorar isso.fonte
Caso precise excluir subpastas, você pode usar o
**
curinga para excluir qualquer nível de subdiretório.fonte
Para ignorar um diretório inteiro no Git, a maneira mais fácil é incluir um arquivo .gitignore no diretório de destino, que simplesmente contém "*".
Um exemplo ilustrativo,
Sistema de exemplo
Objetivo
Nível superior .gitignore (/root/.gitignore)
Diretório ignorado .gitignore (/root/dirB.gitignore)
E é simples assim :)
fonte
Quando tudo mais falhar, tente editar o arquivo
e adicionando os diretórios que você deseja ao final do arquivo, assim:
Eu adicionei as pastas "assets" e "compiled" à lista de arquivos e diretórios a serem ignorados.
fonte
No Unix:
No Windows:
Esses comandos executados em um terminal criarão um
.gitignore
arquivo no local atual.Em seguida, basta adicionar informações a este
.gitignore
arquivo (usando o Notepad ++ por exemplo) quais arquivos ou pastas devem ser ignorados. Salve suas alterações. É isso aí :)Mais informações: .gitignore
fonte
Você pode criar o arquivo ".gitignore" com o conteúdo:
Funciona para mim.
fonte
Eu tive alguns problemas com o Git para pegar o
.gitignore
arquivo no Windows. O$GIT_DIR/info/exclude
arquivo sempre parece funcionar.A desvantagem dessa abordagem, no entanto, é que os arquivos no
$GIT_DIR
diretório não são incluídos no check-in e, portanto, não são compartilhados.fonte
Presumo que o problema é que sua árvore de trabalho é como:
... com o que
.gitignore
você descreve. Isso lhe dará umagit status
saída como:... se os
index.html
arquivos ainda não foram adicionados ao repositório. (O Git vê que existem arquivos não-registrados nos diretórios de cache, mas apenas os reporta.) Para corrigir isso, verifique se você adicionou e confirmou osindex.html
arquivos:... e sua
git status
vontade se parecerá com:(Obviamente, você também quer se comprometer
.gitignore
. Eu estava sendo preguiçoso neste caso de teste.)fonte
No Windows e Mac, se você deseja ignorar uma pasta chamada Flower_Data_Folder no diretório atual, pode:
Se for um arquivo chamado
data.txt
:Se for um caminho como "Data / passwords.txt"
fonte
Eu tive problemas semelhantes. Eu trabalho em uma cadeia de ferramentas do Windows com um repositório compartilhado com os funcionários do Linux, e eles criam arquivos com o mesmo nome (exceto no caso) em uma determinada pasta.
O efeito é que eu posso clonar o repositório e ter imediatamente dezenas de arquivos 'modificados' que, se eu fizessem check-in, causariam estragos.
Eu tenho o Windows definido para maiúsculas e minúsculas e o Git para não ignorar maiúsculas e minúsculas, mas ainda falha (nas chamadas da API do Win32 aparentemente).
Se eu fizer o gitignore dos arquivos, lembre-se de não acompanhar o arquivo .gitignore.
Mas eu encontrei uma boa resposta aqui:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
fonte
Basta criar um
.gitignore
arquivo na sua pasta do projeto. Em seguida, adicione o nome da pasta nela, por exemplo:fonte