arquivo .gitignore, onde devo colocá-lo no meu projeto xcode?


Respostas:


124

Você pode ter um .gitignoreem cada diretório do seu projeto.

No entanto, a prática recomendada é ter um único .gitignorearquivo no diretório raiz do projeto e colocar todos os arquivos que deseja ignorar nele, como este:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

Depois de criar o .gitignorearquivo, os arquivos ignorados que têm alterações ou são novos no repositório não serão mostrados como aguardando confirmação.

Você também pode ter um arquivo git ignore local global, que gerenciará todos os seus repositórios git.

git config --global core.excludesfile ~/.gitignore_global

Esta alternativa é particularmente interessante para arquivos ignorados que não são relacionados ao projeto, como arquivos relacionados ao IDE e assim por diante.


1
Este .gitignore deve ser adicionado na origem ou em sua cópia master / local-repo?
Adil

1
Localmente (é claro que você vai empurrá-lo para a origem em algum ponto).
Daniel Ribeiro

21

Existem abordagens para ignorar arquivos no git:

  1. Git ignore global: - Nesta abordagem, suas regras personalizadas serão aplicadas a todos os diretórios git em sua máquina. Normalmente, esse arquivo pode ser criado sob o ~/.gitignore_globalcaminho. Esta abordagem é boa se você deseja excluir alguns tipos de arquivos que são gerados pelo sistema operacional ou qualquer outra ferramenta de registro, cobrança e etc.
  2. Ignorar git por repositório: - Nesta abordagem, suas regras personalizadas serão aplicadas a um diretório git específico em sua máquina. Regras locais por repositório podem ser adicionadas ao .git/info/excludearquivo em seu repositório. As regras especificadas neste arquivo não serão confirmadas, o que significa que não será compartilhado com outros. Geralmente, essa abordagem é útil para evitar a confirmação de arquivos gerados localmente. Por exemplo, para arquivos criados por seu editor.
  3. Por caminho git ignore: - Neste caso, suas regras personalizadas serão aplicadas a subcaminhos de repositórios git específicos. Você pode criar .gitignoreem qualquer subcaminho de seu repositório específico. Esta abordagem geralmente é usada para ignorar alguns tipos de arquivo apenas em uma pasta específica de um repositório específico. Enquanto estes arquivos podem ser adicionados ao controle de versão por outros caminhos e outros repositórios.

Então, minha sugestão é, se você quiser ignorar seu arquivo específico ( UserInterfaceState.xcuserstate) em todos os seus repositórios, a melhor abordagem é usar a abordagem global git ignore. No entanto, se seu arquivo for gerado apenas em um repositório específico, você pode usar a abordagem git ignore por repositório.

Para obter mais informações, você pode ler esta ótima postagem no blog. E regras específicas para git ignore podem ser encontradas aqui . E você pode gerar automaticamente regras gerais do git ignore para idiomas, ferramentas ou sistemas operacionais específicos usando este site .


20

Você deve colocar o arquivo .gitignore no diretório raiz do projeto.


12

onde devo colocar o .gitignorearquivo ?, ele está dentro da pasta .git?

Não existe .gitignoredentro de uma .gitpasta.
No entanto, é um .git/info/excludearquivo, que permite excluir um arquivo localmente, geralmente quando você deseja excluir um arquivo apenas para este repositório específico (com um alias como este ):

git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate

Se você precisar excluir este arquivo para todos os projetos semelhantes, como Elnur Abdurrakhimov mencionou em sua resposta , exclua-o globalmente.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Mas, conforme mencionado em " Precisamos fazer check-in * .xcuserstate? ", Se for um tipo de arquivo que deve ser ignorado por qualquer usuário desse repo, eu na verdade faria a versão de um .gitignore no topo do repo, com um conteúdo semelhante a:

*.xcuserstate 

Dessa forma, nenhum usuário desse repo nem vai perceber que esse arquivo existe e é gerado (seja qual for o nome): não vai aparecer em um git statusnunca.

Ou você pode ignorarxcuserdata/ totalmente (em um global .gitignoreou em um com versão, como o arquivo GitHub genéricoObjective-C.gitignore .


Você é a lenda do GIT! sempre suas respostas são as mais úteis.
Jad Chahine

@JadChahine. Obrigado. Fico feliz em ajudar (pelo menos, escrever essas respostas me ajuda a aprender git)
VonC

@tymac Não exatamente;) Eu apenas visito regularmente ( meta.stackexchange.com/questions/122976/… )
VonC

9

Você não deve colocar arquivos específicos da ferramenta em um .gitignorearquivo de projeto - a menos que essa ferramenta seja necessária para ser usada por cada desenvolvedor do projeto.

Em vez disso, crie seu .gitignorearquivo global pessoal em seu diretório inicial e ative-o:

git config --global core.excludesfile ~/.gitignore

Agora você pode colocar quaisquer arquivos gerados por suas ferramentas de desenvolvimento em seu .gitignorearquivo.


6

normalmente, sua prática recomendada é incluir o .gitignorearquivo no diretório raiz do projeto

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.