.gitignore archivo, ¿dónde debería ponerlo en mi proyecto xcode?


Respuestas:


124

Puede tener un .gitignoreen cada directorio de su proyecto.

Sin embargo, la mejor práctica es tener un solo .gitignorearchivo en el directorio raíz del proyecto y colocar todos los archivos que desee ignorar en él, así:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

Una vez que cree el .gitignorearchivo, los archivos ignorados que tienen cambios o son nuevos en el repositorio no se mostrarán como esperando para ser confirmados.

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

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

Esta alternativa es particularmente interesante para archivos ignorados que no están relacionados con el proyecto, como archivos relacionados con IDE, etc.


1
¿Este .gitignore debe agregarse en el origen o en su copia maestra / local-repo?
Adil

1
Localmente (por supuesto, lo enviará al origen en algún momento).
Daniel Ribeiro

21

Hay enfoques para ignorar archivos en git:

  1. Global git ignore: - En este enfoque, sus reglas personalizadas se aplicarán a cada directorio git en su máquina. Por lo general, este archivo se puede crear en la ~/.gitignore_globalruta. Este enfoque es bueno si desea excluir algunos tipos de archivos generados por el sistema operativo o cualquier otra herramienta de registro, cobro, etc.
  2. Ignorar git por repositorio: - En este enfoque, sus reglas personalizadas se aplicarán a un directorio git específico en su máquina. Las reglas locales por repositorio se pueden agregar al .git/info/excludearchivo en su repositorio. Las reglas especificadas en este archivo no se confirmarán, lo que significa que no se compartirá con otros. Generalmente, este enfoque es útil para evitar la confirmación de archivos generados localmente. Por ejemplo, para archivos creados por su editor.
  3. Por ruta, git ignore: - En este caso, sus reglas personalizadas se aplicarán a la subruta de repositorios git específicos. Puede crear .gitignoreen cualquier subruta de su repositorio específico. Este enfoque generalmente se usa para ignorar algunos tipos de archivos solo en una carpeta específica de un repositorio específico. Si bien estos archivos se pueden agregar al control de versiones mediante otras rutas y otros repositorios.

Entonces, mi sugerencia es que, si desea ignorar su archivo específico ( UserInterfaceState.xcuserstate) en todos sus repositorios, el mejor enfoque es usar el enfoque global git ignore. Sin embargo, si su archivo se genera solo en un repositorio específico, puede usar el enfoque de ignorar git por repositorio.

Para obtener más información, puede leer esta excelente publicación de blog. Y allí, por idioma, las reglas de ignorar git específicas se pueden fundar aquí . Y puede generar automáticamente reglas generales de ignorar git para un idioma, herramienta u sistema operativo específicos usando este sitio web .


20

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


12

¿Dónde debo poner el .gitignorearchivo? ¿Está dentro de la carpeta .git?

No hay .gitignoredentro de una .gitcarpeta.
Sin embargo, es un .git/info/excludearchivo, que le permite excluir un archivo localmente, generalmente cuando desea excluir un archivo solo para este repositorio específico (con un alias como este ):

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

Si necesita excluir este archivo para todos los proyectos similares, como mencionó Elnur Abdurrakhimov en su respuesta , exclúyalo globalmente.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Pero, como se menciona en " ¿Necesitamos registrar * .xcuserstate? ", Si se trata de un tipo de archivo que debe ser ignorado por cualquier usuario de ese repositorio, en realidad versionaría un .gitignore en la parte superior del repositorio, con un contenido similar a:

*.xcuserstate 

De esa manera, cualquier usuario de ese repositorio ni siquiera se dará cuenta de que este archivo existe y se genera (sea cual sea su nombre): no aparecerá git statusnunca.

O puede ignorar porxcuserdata/ completo (ya sea en un global .gitignoreo en uno versionado, como el archivo genérico de GitHubObjective-C.gitignore .


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

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

@tymac No exactamente;) Solo visito regularmente ( meta.stackexchange.com/questions/122976/… )
VonC

9

Usted debe no poner los archivos de herramientas específicas en un proyecto de .gitignorearchivo - a menos que se requiere herramienta para ser utilizada por cada desarrollador del proyecto.

En su lugar, cree su .gitignorearchivo global personal en su directorio de inicio y actívelo:

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

Ahora puede poner en su .gitignorearchivo cualquier archivo generado por sus herramientas de desarrollo .


6

Normalmente, su mejor práctica es incluir el .gitignorearchivo en el directorio raíz del proyecto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.