Считаете ли вы хорошей практикой вводить .gitignore в репозиторий Git?
Некоторым людям это не нравится, но я думаю, что это хорошо, так как вы можете отслеживать историю файла. Не так ли?
Считаете ли вы хорошей практикой вводить .gitignore в репозиторий Git?
Некоторым людям это не нравится, но я думаю, что это хорошо, так как вы можете отслеживать историю файла. Не так ли?
Ответы:
Обычно да, .gitignore
это полезно для всех, кто хочет работать с хранилищем. Иногда вам захочется игнорировать более личные вещи (возможно, вы часто создаете LOG
или что-то в этом роде. В этих случаях вы, вероятно, не хотите навязывать это кому-либо еще).
$GIT_DIR/info/exclude
или ~/.gitconfig
в соответствующих случаях.
git rm --cached FILENAME
Вы обычно делаете коммит .gitignore
. На самом деле, я лично захожу так далеко, чтобы убедиться, что мой индекс всегда чист, когда я над чем-то не работаю. ( git status
ничего не должно показывать.)
Есть случаи, когда вы хотите игнорировать вещи, которые на самом деле не специфичны для проекта. Например, ваш текстовый редактор может создавать *~
файлы автоматического резервного копирования, или другим примером могут быть .DS_Store
файлы, созданные OS X.
Я бы сказал, если другие жалуются на то, что эти правила загромождают ваши .gitignore
, оставьте их и поместите в глобальный файл исключений.
По умолчанию этот файл находится в $XDG_CONFIG_HOME/git/ignore
(по умолчанию ~/.config/git/ignore
), но это местоположение можно изменить, установив core.excludesfile
параметр. Например:
git config --global core.excludesfile ~/.gitignore
Просто создайте и отредактируйте глобальный файл excludefile для вашего сердца; он будет применяться к каждому git-репозиторию, над которым вы работаете на этой машине.
# some comment
строки в .gitignore
файл, чтобы объяснить, почему вы что-то игнорируете. Комментируя каждую строку немного излишним, но у меня есть разделы помечены # IDE (Eclipse)
, # OS (Mac OS X)
и # Generated (Perl)
. Таким образом, если кто-то хочет использовать другую ОС или IDE, он может добавить раздел, и мы все можем поделиться.
core.excludesfile
является is ~/.config/git/ignore
, соответствующее спецификации XDG Base Directory
.gitignore
- Чрезвычайно полезно, когда люди, с которыми вы работаете, не согласны с содержимым отправляемых .gitignore
файлов или с тем, должны ли они передаваться, и мы все используем тонну различных сред разработки, которые генерируют различные типы шума.
Я помещаю commit .gitignore, который любезен другим, кто может построить мой проект, что следующие файлы являются производными и должны игнорироваться.
Я обычно делаю гибрид. Мне нравится, когда make-файл генерирует файл .gitignore, так как make-файл будет знать все файлы, связанные с проектом - или иначе. Затем запустите зарегистрированный проект верхнего уровня .gitignore, который будет игнорировать созданные файлы .gitignore, созданные make-файлом для различных подкаталогов.
Так что в моем проекте у меня может быть подкаталог bin со всеми встроенными исполняемыми файлами. Затем мой make-файл сгенерирует .gitignore для этого каталога bin. И в верхнем каталоге .gitignore, в котором перечислены bin / .gitignore. Верхний тот, который я проверяю.
Фиксация .gitignore может быть очень полезна, но вы должны быть уверены, что после этого не будете слишком сильно ее изменять, особенно если вы регулярно переключаетесь между ветками. Если вы это сделаете, вы можете получить случаи, когда файлы игнорируются в одной ветви, а не в другой, что заставляет вас вручную удалять или переименовывать файлы в вашем рабочем каталоге, потому что проверка завершилась неудачно, поскольку она перезаписывает не отслеживаемый файл.
Поэтому да, сделайте свой .gitignore, но не раньше, чем вы будете уверены, что он не изменится после этого.
Хорошей практикой является использование по .gitignore
крайней мере ваших продуктов для сборки (программ, * .o и т. Д.).
.gitignore
само должно быть « .gitignore
д»?