2012-03-12 34 views
102

Quiero que git ignore mi archivo UserInterfaceState.xcuserstate en mi proyecto XCode4, pero ¿dónde debería poner el archivo .gitignore ?, ¿está dentro de la carpeta .git? o fuera? El .git está en la misma carpeta con el archivo ProjectName.xcodeproj.gitignore archivo, ¿dónde debería ponerlo en mi proyecto xcode?

+0

posible duplicado de [¿Dónde pertenecen .gitignore archivo?] (Http://stackoverflow.com/questions/5698148/where-does -gitignore-file-belong) –

Respuesta

124

Puede tener un .gitignore en cada uno de los directorios de su proyecto.

Sin embargo, lo mejor es tener un solo archivo .gitignore en el directorio raíz del proyecto, y colocar todos los archivos que desea ignorar, en ella, así:

ignoredFile.whatever 
ignoredDirectory/* 
directory/ignoredFileInsideDirectory 
.svn 

Una vez creado el archivo de .gitignore , los archivos de ignorar que tienen cambios o son nuevos en el repositorio no se mostrarán como en espera de confirmación.

También puede tener un archivo global ignorar git local, que administrará todos sus repositorios git.

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

Esta alternativa es especialmente interesante para los ficheros ignorados que no están relacionados con el proyecto, como los archivos relacionados con IDE y así sucesivamente.

+1

Este .gitignore se debe agregar en el origen o en su copia maestra/repo local? – Adil

+1

Localmente (por supuesto, lo llevarás al origen en algún momento). –

20

Debe colocar el archivo .gitignore en el directorio raíz del proyecto.

9

Debe no poner archivos específicos de la herramienta en el archivo .gitignore de un proyecto, a menos que cada desarrollador del proyecto tenga que utilizar esa herramienta.

su lugar, crear su archivo personal .gitignore mundial en su directorio personal y activarlo:

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

ya se puede poner lo que los archivos son generados por sus herramientas de desarrollo en su archivo .gitignore.

12

¿dónde debería poner el archivo .gitignore ?, ¿está dentro de la carpeta .git?

No hay .gitignore dentro de una carpeta .git. Sin embargo
El es un archivo .git/info/exclude, lo que le permite excluir un archivo local, por lo general cuando se desea excluir un archivo sólo para esta cesión temporal específica (con un alias like this one):

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

Si necesita excluir esta archivo para todo proyecto similar, como Elnur Abdurrakhimov mencionado en his answer, excluirlo globalmente.

echo UserInterfaceState.xcuserstate >> ~/.gitignore 

Pero, como se menciona en "Do we need to check in *.xcuserstate?", si se trata de un tipo de archivo que debería ser ignorada por cualquier usuario de esa cesión temporal, lo haría en realidad una versión.gitignore en la parte superior de la cesión temporal, con un contenido similar a:

*.xcuserstate 

De esta forma, cualquier usuario de que la cesión temporal ni siquiera darse cuenta de que este archivo existe y se genera (cualquiera que sea su nombre es): ganó No aparece en un git status alguna vez. .

O puede ignore xcuserdata/ por completo (ya sea de forma global .gitignore, o en uno versionado, al igual que el archivo generic GitHub Objective-C.gitignore

+0

¡Eres la leyenda de GIT! siempre tus respuestas son las más útiles. –

+0

@JadChahine Gracias. Me alegra ayudar (al menos, escribir esas respuestas me ayuda a aprender git) – VonC

21

No hay enfoques para ignorar archivos en git:

  1. GIT Global ignore: - En este enfoque, sus reglas personalizadas se aplicarán a cada directorio de git en su máquina. Por lo general, este archivo se puede crear en ~/.gitignore_global ruta Este enfoque es bueno si desea excluir algunos archivos de tipo que se generan por OS o otras herramientas de registro, cobro y otras.
  2. Por repositorio git ignorar: - En este enfoque sus reglas personalizadas se aplicarán al directorio git específico en su máquina. Las reglas locales por repositorio se pueden agregar al archivo .git/info/exclude en su repositorio. Las reglas especificadas en este archivo no serán comprometidas, lo que significa que no se compartirán con otros. En general, este enfoque es útil para evitar la confirmación de archivos generados localmente. Por ejemplo, para archivos creados por su editor.
  3. Por git de ruta ignorar: - En este caso, sus reglas personalizadas se aplicarán a la subruta de repositorios git específicos. Puede crear .gitignore en cualquier ruta secundaria de su repositorio específico. Este enfoque normalmente se utiliza para ignorar algunos tipos de archivos solo en una carpeta específica de un repositorio específico. Mientras que estos archivos se pueden agregar a la versión que controla otras rutas y otros repositorios.

Así, Mi sugieren que usted es, si se quiere hacer caso omiso de su archivo específico (UserInterfaceState.xcuserstate) en sus todos los repositorios el mejor enfoque es usar Git global de ignorado enfoque. Sin embargo, si su archivo se genera solo en un repositorio específico, puede utilizar el enfoque git ignorar por repositorio.

Para obtener más información, puede leer this gran publicación en el blog. Y allí por idioma específico, las reglas de ignorar git se pueden fundar here. Y puede generar automáticamente las reglas generales de ignorar git para un idioma, herramienta o sistema operativo específicos usando this web site.

5

normalmente, sus mejores prácticas para incluir el archivo .gitignore en el directorio raíz del proyecto

+2

Esta es exactamente mi respuesta ... – heinrich5991

Cuestiones relacionadas