Pergunta

Como posso ignorar diretórios ou pastas no Git usando msysgit no Windows?

Foi útil?

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:

  1. .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 funcionando git 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

  2. 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

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

  • 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top