Ignorando diretórios em repos Git no Windows
Pergunta
Como posso ignorar diretórios ou pastas no Git usando msysgit no Windows?
Solução
Crie um arquivo chamado .gitignore
no diretório do seu projeto. Ignorar diretórios, digitando o nome do diretório para o arquivo (com uma barra em anexo):
dir_to_ignore/
Mais informações aqui .
Outras dicas
Por padrão do Windows Explorer exibirá .gitignore
quando no fato do nome do arquivo é .gitignore.txt
Git não vai usar .gitignore.txt
E você não pode mudar o nome do arquivo para .gitignore
porque explorador acha que é um arquivo do tipo gitignore sem nome.
solução Non linha de comando:
You can rename a file to ".gitignore." and it will create ".gitignore"
Parece que para ignorar arquivos e diretórios existem duas maneiras principais:
-
.gitignore
- Colocar arquivo
.gitignore
na raiz do seu repo além pasta.git
(no Windows certifique-se de ver a verdadeira extensão do arquivo e depois fazer.gitignore.
(com o ponto no final para fazer extensão de arquivo vazio)) - Fazer
~/.gitignore_global
configuração global e funcionandogit config --global core.excludesfile ~/.gitignore_global
adicionar este à sua git configuração
Nota: Os arquivos rastreados antes pode ser untracked executando
git rm --cached filename
- Colocar arquivo
-
Repo excluir - Para arquivos locais que não precisam ser compartilhados, basta adicionar o padrão de arquivo ou diretório para o
.git/info/exclude
arquivo. Teses regras não estão comprometidos, então não são vistos por outros usuários mais informações aqui
[atualizado] Para fazer exceções em lista de arquivos ignorados, veja esta questão .
Eu tive alguns problemas criando um arquivo no Windows Explorer com um. no início.
a solução era ir para o commandshell e criar um novo arquivo usando "editar"
para instruir GIT para ignorar determinados arquivos ou pastas, você tem que criar o arquivo .gitignore
.
mas no Windows Explorer você tem que fornecer um nome para o arquivo, você simplesmente não pode criar o arquivo com apenas extensão, o truque é que criar um arquivo de texto vazio e ir ao prompt de comando e altere o nome do arquivo para .gitignore
ren "New Text Document.txt" .gitignore
Agora abra o arquivo com seu editor de texto favorito e adicionar os nomes de arquivo / pasta que você deseja que você ignorar. você também pode usar curingas como esta *.txt
espero que responde você pergunta ??p>
Se você quiser manter uma pasta e não os arquivos dentro dela, basta colocar um arquivo ".gitignore" na pasta com '*' como conteúdo. Este arquivo irá ignorar todo o conteúdo do repositório. Mas .gitignore
será incluir no seu repo.
$ git add path/to/folder/.gitignore
Se você adicionar pasta vazia, você receber essa mensagem (arquivo .gitignore está escondido)
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
Assim, o uso "-f" à força add:
$ git add path/to/folder/.gitignore -f
No Windows, há uma captura extra com barras. Excluindo um único diretório em .gitignore com
dir_to_exclude /
possivelmente trabalho, mas excluindo todos os diretórios com
/
causa problemas quando você tem nomes de arquivos com espaços (como my file.txt
) em seu diretório:. Git festa escapa a esses espaços com uma barra invertida (como my\ file.txt
) e Git para Windows não faz distinção entre /
e \
Para excluir todos os diretórios melhor aproveitamento:
** /
Dois asteriscos consecutivos significam conteúdo do diretório.
Também em seu diretório projectos \.git\info
há um arquivo que é efetivamente a mesma coisa que .gitignore
(eu acho) excluir. Você pode adicionar arquivos e diretórios ignorar nisso.
Para ignorar um diretório inteiro no git, a maneira mais fácil é incluir um arquivo .gitignore dentro do diretório de destino que simplesmente contém "*"
Um exemplo ilustrativo,
Exemplo do Sistema
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
Meta ??strong>
- ignorar o conteúdo de / dirB /
Nível superior .gitignore (/root/.gitignore)
- Este é o lugar onde o seu padrão informações gitignore vai
Ignorado .gitignore Directory (/root/dirB.gitignore)
- Este arquivo apenas lê como '*' e o diretório é completamente ignorado, a si mesmo e todos os arquivos!
e é simples assim:)
Apenas no caso de você precisar excluir sub-pastas que você pode usar o curinga **
excluir qualquer nível de diretório de sub.
**/build/output/Debug/
Eu tive alguns problemas para obter git para pegar o arquivo .gitignore no Windows. Os US $ GIT_DIR / info / excluir arquivo parece sempre trabalho embora. A desvantagem dessa abordagem, no entanto, é que os arquivos no diretório $ GIT_DIR não estão incluídos no check-in, e, portanto, não compartilhado.
(P. S. $ GIT_DIR é geralmente o escondido pasta .git nomeado)
Você pode criar o arquivo ".gitignore" com o conteúdo:
*
!.gitignore
Ele funciona para mim e simples.
Quando tudo mais falhar tente editar o arquivo
/. Git / info / excluir
e adicionando os diretórios que deseja o fim do arquivo, como este:
# 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 "ativos" e "compilado" para a lista de arquivos e diretórios de ignorar.
Eu assumo o problema é que a sua árvore de trabalho é semelhante:
a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore
... com a .gitignore
você descreve. Isto lhe dará saída git status
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 arquivos index.html
ainda não foram adicionados ao repositório. (. Git vê que existem arquivos unignored nos diretórios de cache, mas apenas relata os diretórios) Para corrigir isso, certifique-se que você tenha adicionado e cometeu os arquivos index.html
:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... e seu git status
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ê quer cometer .gitignore
bem, eu estava apenas sendo preguiçoso com este caso de teste.)
No Unix:
touch .gitignore
No Windows:
echo > .gitignore
Estes comandos executados em um terminal criará um arquivo .gitignore
no local atual.
Em seguida, basta adicionar informação a este arquivo .gitignore
(usando o Notepad ++, por exemplo), que arquivos ou pastas devem ser ignorados. Salve as alterações. É isso:)
Mais informações: https://www.atlassian.com/git/ tutoriais / salvando-muda / gitignore
No Windows e Mac, se você deseja ignorar uma pasta chamada Flower_Data_Folder no diretório atual, você pode fazer:
echo Flower_Data_Folder >> .gitignore
Se seu arquivo de um chamado data.txt
echo data.txt >> .gitignore
Se seu caminho a como "Data / passwords.txt"
echo "Dados / passwords.txt" >> .gitignore.
Eu tinha problemas semelhantes, eu trabalho em uma cadeia de ferramentas do Windows com um repo compartilhado com caras Linux, eles happlily criar arquivos com o mesmo [com exceção de casos] nomes em uma determinada pasta.
O efeito é que eu posso clonar o repo e imediatamente dezenas de 'modificado' arquivos que se eu o check-in iria criar confusão.
eu tenho janelas definidas para maiúsculas e minúsculas e git para não ignorar caso, mas ainda falha (nas chamadas Win32 API aparentemente).
Se eu gitignore os arquivos, então eu tenho que lembrar de não controlar o arquivo .gitignore.
Mas eu encontrei uma boa resposta aqui http: // arquivo .robwilkerson.org / 2010/03/02 / git-ponta-ignore-muda-to-arquivos rastreados / index.html
Chris