Existe um comando ignore para o git como existe para o svn?

125

Eu sou um novo usuário gite estou iniciando um novo projeto. Eu tenho vários arquivos de ponto que gostaria de ignorar. Existe um comando ignorar para o gitque existe para svn?

Chris J
fonte
1
Boa alternativa para gitignore: git update-índice --assume-inalterada <file> , graças a stackoverflow.com/a/16442091/2162226
Gene Bo

Respostas:

136

Não há git ignorecomando especial .

Edite um .gitignorearquivo localizado no local apropriado na cópia de trabalho. Você deve então adicionar .gitignoree confirmar. Todos os que clonarem esse repositório terão esses arquivos ignorados.

Observe que apenas os nomes dos arquivos iniciados por /serão relativos ao diretório .gitignore. Todo o resto corresponderá aos arquivos em qualquer subdiretório.

Você também pode editar .git/info/excludepara ignorar arquivos específicos apenas nessa cópia de trabalho. O .git/info/excludearquivo não será confirmado e, portanto, será aplicado apenas localmente nesta cópia de trabalho.

Você também pode configurar um arquivo global com padrões para ignorar git config --global core.excludesfile. Isso será aplicado localmente a todas as cópias de trabalho do git na mesma conta do usuário.

Execute git help gitignoree leia o texto para obter detalhes.

ndim
fonte
75
Não ter um simples comando de ignorar parece uma supervisão da parte da equipe git.
Jcollum
4
@jcollum À primeira vista, sim, mas a simplicidade de criar um alias para adicionar novos comandos E a complexidade de criar um e trabalhar com todos os casos / dicas / problemas em potencial de editar um arquivo de texto também faz sentido deixá-lo para o do utilizador. Sinto-me em conflito porque concordo e discordo de você.
Abelito
100

Um comando git ignore muito útil vem com os incríveis tj / git-extras .

Aqui estão alguns exemplos de uso:

Listar todos os padrões atualmente ignorados

git ignore

Adicionar um padrão

git ignore "*.log"

Adicione um dos modelos do gitignore.io

git ignore-io -a rails

O git-extras fornece muitos outros comandos úteis. Definitivamente vale a pena experimentar.

Nicolai Fröhlich
fonte
1
Então, se eu usar o git ignore "index.html", ele ignorará esse arquivo?
JohnAndrews
O comando -t ainda é aplicável? Quando o executo, ele adiciona apenas -t e qualquer modelo que eu tente adicionar no arquivo git ignore
Bynho
50

No Linux / Unix, você pode anexar arquivos ao arquivo .gitignore com o echocomando Por exemplo, se você deseja ignorar tudo.svn pastas, execute isso a partir da raiz do projeto:

echo .svn/ >> .gitignore
pfrenssen
fonte
1
Descobri esse tweet usando essa sintaxe twitter.com/noodl_io/status/669904872704253953
JohnAndrews
3
No Git Bash no Windows, eu precisava adicionar um /'\' anterior e à direita (para criar uma nova linha), como echo /nbproject/project.properties\ >> .gitignoree echo /nbproject/project.xml\ >> .gitignore.
Ryan
15

Você tem duas maneiras de ignorar arquivos:

  • .gitignoreem qualquer pasta ignorará os arquivos conforme especificado no arquivo para essa pasta. É possível usar curingas.
  • .git/info/excludemantém o padrão global de ignorância, semelhante ao global-ignoresarquivo de configuração do subversions.
bluebrother
fonte
6
Note que os padrões no .gitignorearquivo que não contêm '/' são correspondidos recursivamente (isto é, também em todos os subdiretórios do diretório em que o .gitignorearquivo se encontra), contrariamente ao caso das svn:ignorepropriedades do diretório no Subversion.
Jakub Narębski 6/11/09
6

Espero que não seja tarde demais.

Se você estiver no Windows, faça o seguinte para criar um arquivo .gitignore

echo name_of_the_file_you_want_to_ignore.extension > .gitignore

Para editar .gitignore, você pode executar

notepad .gitignore
Nesar
fonte
2
Não use isso se você já tiver um arquivo .gitignore, ele o substituirá! Para acrescentar o arquivo a ser ignorado, use o seguinte: echo ignore.ext >> .gitignore
TomEberhard
Você está certo, é aconselhável usar apenas se o arquivo .gitignore não existir. É melhor usar "notepad .gitignore", se você tiver um arquivo .gitignore, ele será aberto e, se você não criar, criará um e poderá adicionar todos os arquivos do bloco de notas. 1 arquivo / pasta por linha
Nesar 11/11/18
3

Crie um arquivo chamado .gitignore na raiz do seu repositório. Neste arquivo, você coloca o caminho relativo de cada arquivo que deseja ignorar em uma única linha. Você pode usar o *curinga.

Bruno Reis
fonte
2

Usando as respostas já fornecidas, você pode rolar seu próprio git ignorecomando usando um alias . Adicione isso ao seu arquivo ~ / .gitconfig:

ignore = !sh -c 'echo $1 >> .gitignore' -

Ou execute este comando no shell (* nix) de sua escolha:

git config --global alias.ignore '!sh -c "echo $1 >> .gitignore" -'

Da mesma forma, você pode criar um git excludecomando substituindo ignorepor excludee .gitignorepor.git/info/exclude acima.

(Se você ainda não entendeu a diferença entre esses dois arquivos, leia as respostas aqui, consulte esta pergunta .)

daemonexmachina
fonte
1
A resposta aqui expande $ 1 corretamente: stackoverflow.com/a/21884533/1465227
Archangel33
2

para nomes não presentes na cópia de trabalho ou no repositório:

echo /globpattern >> .gitignore

ou para um arquivo existente (linha de comando do tipo sh):

echo /$(ls -1 file) >> .gitignore   # I use tab completion to select the file to be ignored  
git rm -r --cached file             # if already checked in, deletes it on next commit
nrbray
fonte
1

É útil definir um arquivo .gitignore completo para o seu projeto. A recompensa é o uso seguro do conveniente --allou -asinalizador para comandos como addecommit .

Além disso, considere definir um arquivo ~ / .gitignore global para padrões geralmente ignorados, como *~ , que abrange arquivos temporários criados pelo Emacs.

seh
fonte
1

Você precisa instalar o git-extras para isso. Você pode instalá-lo no Ubuntu usando o apt-get,

$ sudo apt-get install git-extras

Então você pode usar o comando git ignore.

$ git ignore file_name
Vidura Mudalige
fonte
3
No Mac, se você tiver o Homebrew instalado, poderá executar brew install git-extras.
Alex Glover
0

Você também pode usar o gitignore.io de Joe Blau

Através da interface da Web https://www.gitignore.io/

Ou, instalando a ferramenta CLI, é muito fácil e rápido, basta digitar o seguinte no seu terminal:

Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc

OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile

E então você pode apenas digitar giseguido por todos os elementos de plataforma / ambiente para os quais você precisa ter critérios de gitignore.

Exemplo!
Digamos que você esteja trabalhando em um projeto de nó que inclui o grunhido e que esteja usando tempestade da web no linux; em seguida, você pode digitar:
gi linux,webstorm,node,grunt > .gitignore(para criar um novo arquivo)
ou
gi linux,webstorm,node,grunt >> .gitignore (para adicionar / adicionar as novas regras a um arquivo existente )

bam, você está pronto para ir

JorgeArtware
fonte