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

102

Quero que o git ignore meu UserInterfaceState.xcuserstatearquivo em meu projeto XCode4, mas onde devo colocá .gitignore-lo? Ele está dentro da .gitpasta? ou fora? O .gitestá na mesma pasta do ProjectName.xcodeprojarquivo

Mauricio Alberto Barragn Huert
fonte
possível duplicata de Onde o arquivo .gitignore pertence?
Pavan Gupta de

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.

Daniel Ribeiro
fonte
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 .

Khamidulla
fonte
20

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

heinrich5991
fonte
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 .

VonC
fonte
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.

Elnur Abdurrakhimov
fonte
6

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

Ajey
fonte