Файл .gitignore, где я должен поместить его в свой проект xcode? - PullRequest
102 голосов
/ 12 марта 2012

Я хочу, чтобы git игнорировал мой файл UserInterfaceState.xcuserstate в моем проекте XCode4, но куда мне поместить файл .gitignore? Он находится в папке .git?или нет?.git находится в той же папке, что и файл ProjectName.xcodeproj

Ответы [ 6 ]

124 голосов
/ 12 марта 2012

Вы можете иметь .gitignore в каждом каталоге вашего проекта.

Однако лучше всего иметь один единственный файл .gitignore в корневом каталоге проекта и поместить в него все файлы, которые вы хотите игнорировать, например:

ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn

После создания файла .gitignore игнорируемые файлы, которые имеют изменения или являются новыми в хранилище, не будут показаны как ожидающие принятия.

Вы также можете иметь один глобальный локальный файл git ignore, который будет управлять всеми вашими git-репозиториями.

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

Эта альтернатива особенно интересна для игнорируемых файлов, не связанных с проектом, таких как файлы, связанные с IDE и т. Д.

21 голосов
/ 02 января 2014

Существуют подходы для игнорирования файлов в git:

  1. Global git ignore: - При таком подходе ваши пользовательские правила будут применяться ко всем каталогам git на вашем компьютере. Обычно этот файл может быть создан по пути ~/.gitignore_global. Этот подход хорош, если вы хотите исключить некоторые файлы типов, которые создаются ОС или любыми другими инструментами ведения журналов, кэширования и т. Д.
  2. Git ignore для репозитория: - При таком подходе ваши пользовательские правила будут применяться к определенному каталогу git на вашем компьютере. Локальные правила для каждого репозитория можно добавить в файл .git/info/exclude в вашем репозитории. Правила, указанные в этом файле, не будут совершено, что означает, что он не будет передан другим. Обычно этот подход полезен для предотвращения фиксации локально сгенерированных файлов. Например, для файлов, созданных вашим редактором.
  3. По пути git ignore: - В этом случае ваши пользовательские правила будут применяться к определенным подпутям git-репозиториев. Вы можете создать .gitignore в любом подкаталоге вашего конкретного репозитория. Этот подход обычно используется для игнорирования некоторых типов файлов только в определенной папке конкретного репозитория. Пока эти файлы могут быть добавлены в управление версиями другими путями и другими репозиториями.

Итак, я предлагаю вам, если вы хотите игнорировать ваш конкретный файл (UserInterfaceState.xcuserstate) во всех ваших репозиториях, лучшим подходом является использование глобального подхода git ignore. Однако, если ваш файл генерируется только в определенном хранилище, вы можете использовать подход git ignore для каждого хранилища.

Для получения дополнительной информации вы можете прочитать этот отличный пост в блоге. И для каждого конкретного языка правила git ignore можно найти здесь . И вы можете автоматически создавать общие правила git ignore для определенного языка, инструмента или операционной системы, используя этот веб-сайт .

20 голосов
/ 12 марта 2012

Вы должны поместить файл .gitignore в корневой каталог проекта.

12 голосов
/ 27 декабря 2013

куда мне поместить файл .gitignore? Он находится в папке .git?

В папке .git нет .gitignore.
Однако это файл .git/info/exclude, который позволяет исключить файл локально, как правило, когда вы хотите исключитьфайл только для этого конкретного репо (с псевдонимом , подобным этому ):

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

Если вам необходимо исключить этот файл для всех аналогичных проектов, как Эльнур Абдуррахимов упомянут в его ответ , исключить его глобально.

echo UserInterfaceState.xcuserstate >> ~/.gitignore

Но, как упоминалось в " Нужно ли регистрироваться в * .xcuserstate? ", если это тип файла, который должен игнорироваться любым пользователем этого репо, я бы на самом деле выполнил версию .gitignore вверху репо с содержанием, похожим на:

*.xcuserstate 

Таким образом, любой пользователь этого репо даже не осознает, что этот файл существует и генерируется (как бы его ни называли): он никогда не появится в git status.

Или вы можете полностью игнорировать xcuserdata/ (либо в глобальном .gitignore, либо в версионном, например, generic GitHub Objective-C.gitignore file.

9 голосов
/ 24 августа 2012

Вы должны , а не помещать специфичные для инструмента файлы в файл .gitignore проекта - если только этот инструмент не требуется для использования каждым разработчиком проекта.

Вместо этого создайте свойличный глобальный .gitignore файл в вашем домашнем каталоге и активируйте его:

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

Теперь вы можете поместить любые файлы, сгенерированные вашими инструментами разработки, в ваш файл .gitignore.

6 голосов
/ 02 января 2014

обычно рекомендуется включать файл .gitignore в корневой каталог проекта

...