Como posso ignorar as pastas bin e obj do repositório git?

111

Eu quero ignorar as pastas bin e obj do meu repositório git. Como descobri, não há maneira fácil de fazer isso em .gitignore. Então, existe alguma outra maneira? Usando uma solução limpa no Visual Studio?

chester89
fonte
Funciona bem para mim - adiciono as palavras 'bin' e 'obj' como linhas separadas em meu arquivo .gitignore
Tim Robinson
1
E se a solução consiste em muitos projetos, não apenas um?
chester89
Você pode postar exatamente o que você está tentando e o que não está funcionando. obje binem um nível superior .gitignore deve ignorar tudo que for chamado objou binem todos os níveis inferiores.
CB Bailey
2
Meu entendimento é que o conteúdo .gitignore se aplica a todos os subdiretórios, portanto, 'bin' e 'obj' simples funcionam em qualquer lugar. Vou postar meu .gitignore em uma resposta.
Tim Robinson

Respostas:

164

Não sei por que isso não funciona para você. Caso ajude, aqui está um arquivo .gitignore típico de um dos meus projetos Visual Studio / git:

*.suo
*.user
_ReSharper.*
bin
obj
packages
Tim Robinson
fonte
4
Eu também acrescento, packagescomo você pode facilmente baixá-los novamente em NuGet
Michal Ciechan
1
não funciona quando você primeiro confirma todos os arquivos e, em seguida, adiciona o arquivo .gitignore ao seu repo e o confirma. Os arquivos recentemente ignorados ainda serão mostrados como modificados (se você reconstruir, por exemplo).
vlad2135
7
Recentemente, usei o arquivo .gitignore sugerido encontrado aqui: github.com/github/gitignore/blob/master/VisualStudio.gitignore com grande sucesso.
BigTFromAZ de
1
@BigTFromAZ Você deve adicionar isso como uma resposta, é muito melhor do que a aceita!
Avrohom Yisroel
61

simplesmente fazer uma entrada no gitignore pode não ignorar os arquivos, você pode precisar confirmá-lo. Usei o seguinte método e funcionou para mim

git rm -r --cached .

git add .

então

git commit -am "Remove ignored files"

No entanto, isso ignora minha pasta de scripts, que incluí posteriormente no repositório.

Arvind Krmar
fonte
Funciona bem. Mas o Vscode não conseguiu encontrar o código modificado. Eu mesmo mudei algo e empurrei para o mestre de origem. Então funcionou. :)
Dentrax
Tenho uma solução com muitos projetos e por algum motivo o git add. nunca termina.
Chucky
Ótimo Arvind !, um desenvolvedor novato fundiu todos os bin / e obj / no nosso branch de trabalho (pulando as políticas ... não sei como!) E esta foi a maneira de remover todos os arquivos do repo.
equintas de
Novato para mim (pelo menos para git), fiz isso comigo mesmo. Nunca pensei em rm e depois adicionar novamente porque não entendia que o git rm só deleta os itens do índice e não do disco. Portanto, se bem entendi, seus dois primeiros comandos reconstruíram o índice, excluindo tudo do índice e adicionando tudo de volta, aplicando os filtros .gitignore. Então o commit faz isso no repositório. Muito esperto.
BigTFromAZ de
Ótimo! Isso funcionou perfeitamente bem para mim. todos .vs, obj, bin e outros arquivos ignorados.
Stanley Okpala Nwosa
9

Se você estiver usando o Visual Studio, há uma maneira simples de fazer isso.

  1. Abra o Team Explorer
  2. Clique em configurações
  3. Configurações de repositório
  4. Na seção Ignorar e atribuir arquivo, clique em Adicionar ao lado de Ignorar arquivo.

Ele criará um arquivo .gitignore padrão, que irá ignorar a maioria das pastas e arquivos comuns usados ​​pela estrutura / linguagem.

insira a descrição da imagem aqui

Nilay
fonte
3
  • Localize as pastas bine objno Windows Explorer
  • Clique com o botão direito em TortoiseGit> Excluir e adicionar à lista de ignorados> bin
  • Clique com o botão direito em TortoiseGit> Excluir e adicionar à lista de ignorados> obj
Denys Wessels
fonte
1
Funciona perfeitamente. obrigado @Denys Wessels
Biswajit Panday
2

Se você deseja ignorar bin e obj em TODOS os seus projetos, você pode usar (da página de manual do gitignore )

Padrões lidos do arquivo especificado pela variável de configuração core.excludesfile.

core.excludesfile pode ser definido em um arquivo de configuração que é ~ / .gitconfig no Unix - não sei onde ele está no Windows

mmmmmm
fonte
Boas informações, mas ele se referia a todos os seus projetos do Visual Studio nesta solução, não a TODOS os projetos na máquina.
AhHatem
2
Embora muito provavelmente ele nunca estará interessado em comprometer as pastas bine objem QUALQUER solução. :)
MEMark
1

Se você tiver confirmado as pastas bin e obj anteriormente, adicioná-las ao .gitignore não as excluirá automaticamente. Você precisa confirmar a exclusão dessas pastas, por exemplo, git rm -rf objou git rm -rf yourProject/obj então confirmar a exclusão

Raphael Pinel
fonte
0

Se você tentar por meio da árvore de código-fonte e ainda assim os arquivos de ignorar não estiverem chegando, vá em ferramentas -> opção-> Git e selecione a localização do .gitignore insira a descrição da imagem aqui

Makdu
fonte
0

No meu caso, as pastas bin e obj foram aninhadas na pasta Project do arquivo raiz .gitignore, então tive que adicioná-lo como a seguir:

[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj

Substitua PROJECT_FOLDER_NAME pelo nome da pasta do seu projeto

pk_code
fonte