Чи варто вчинити .gitignore в Git repos?


496

Як ви вважаєте, чи є гарною практикою вчиняти .gitignore в Git repo?

Деяким це не подобається, але я думаю, що це добре, оскільки ви можете відстежувати історію файлу. Чи не так?


38
якщо не ви, покладіть .gitignore в .gitignore ...
CharlesB

Можливий дублікат Ignore the .gitignore file
Michael Freidgeim

Відповіді:


488

Як правило, так, .gitignoreкорисно для всіх, хто хоче працювати з сховищем. Іноді ви захочете ігнорувати більше приватних речей (можливо, ви часто створюєте LOGщось чи щось. У таких випадках ви, мабуть, не хочете це робити на когось іншого.


137
+1 "Приватні речі" можна вказати у файлах $GIT_DIR/info/excludeабо ~/.gitconfigфайлах, якщо це доречно.
WReach

5
Якщо у вас вже зареєстрований файл, і ви хочете його проігнорувати, Git не буде ігнорувати файл, якщо ви додасте правило пізніше. У цих випадках спочатку слід відстебнути файл, виконавши наступну команду у своєму терміналі:git rm --cached FILENAME
eli-bd

133

Ви, як правило, виконуєте зобов’язання .gitignore. Насправді я особисто підходжу до того, щоб переконатися, що мій індекс завжди чистий, коли я над чимсь не працюю. ( git statusнічого не повинно показувати.)

Бувають випадки, коли ви хочете ігнорувати речі, які насправді не мають конкретного проекту. Наприклад, ваш текстовий редактор може створити *~файли автоматичного резервного копіювання, або іншим прикладом можуть бути .DS_Storeфайли, створені ОС X.

Я б сказав, якщо інші скаржаться на ті правила, що захаращують ваші .gitignore, залиште їх і замість цього поставте їх у глобальний файл виключень.

За замовчуванням цей файл знаходиться в $XDG_CONFIG_HOME/git/ignore(за замовчуванням ~/.config/git/ignore), але це місце можна змінити, встановивши core.excludesfileпараметр. Наприклад:

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

Просто створіть та відредагуйте глобальний файл виключень до вмісту вашого серця; він застосовуватиметься до кожного сховища git, над яким ви працюєте на цій машині.


14
Ви завжди можете додати # some commentрядки до .gitignoreфайлу, щоб пояснити, чому ви щось ігноруєте. Коментуючи кожен рядок трохи зайвим, але у мене є розділи помічені # IDE (Eclipse), # OS (Mac OS X)і # Generated (Perl). Таким чином, якщо хтось хоче використовувати іншу ОС або IDE, він може додати розділ, і всі ми можемо поділитися.
Stuart R. Jefferys

9
великі пальці за "Я особисто йду далеко, щоб переконатися, що мій індекс завжди чистий, коли я над чимсь не працюю. (статус git нічого не повинен показувати)"
SGhosh

4
Nb. для сучасного Git значенням за замовчуванням core.excludesfileє ~/.config/git/ignore, що відповідає специфікації базового каталогу XDG
Jakub Narębski,

1
+1 для глобального .gitignore- надзвичайно вигідно, коли люди, з якими ви працюєте, не погоджуються щодо вмісту виштовхуваних .gitignoreфайлів або про те, чи слід їх пересилати, а всі ми використовуємо тони різних середовищ розробника, які генерують різні типи шуму.
Креаз

1
davidwalsh.name/global-gitignore more more information about global ignore
Frode Akselsen

11

Я поміщаю вчинити .gitignore, що є люб’язністю для інших, хто може побудувати мій проект, щоб наступні файли були отримані і повинні ігноруватися.

Я зазвичай роблю гібрид. Мені подобається, щоб makefile генерував файл .gitignore, оскільки makefile буде знати всі файли, пов'язані з проектом, отриманим чи іншим чином. Потім у вас є проект верхнього рівня .gitignore, який ви зареєстрували, який ігнорував би створені файли .gitignore, створені makefile для різних підкаталогів.

Тож у моєму проекті у мене може бути каталог підрозділу зі всіма вбудованими виконуваними файлами. Тоді я змушу свій файл makefile генерувати .gitignore для цього каталогу бін. І у верхньому каталозі .gitignore, що містить список bin / .gitignore. Верхній - той, у якому я заїжджаю.


0

Здійснення .gitignore може бути дуже корисним, але ви хочете, щоб ви не змінювали його занадто сильно після цього, особливо якщо ви регулярно переходите між гілками. Якщо у вас можуть виникнути випадки, коли файли ігноруються у гілці, а не в іншій, змушуючи вас вручну видаляти або перейменовувати файли в робочому каталозі, оскільки реєстрація не вдалася, оскільки вона перезаписала б файл, який не відстежується.

Тому так, робіть своє .gitignore, але не раніше, ніж ви впевнено впевнені, що після цього це не зміниться.


-6

Це хороша практика .gitignore принаймні створювати вироби (програми, * .o тощо).


11
Це не відповіло на запитання: чи повинен бути .gitignore сам " .gitignored"?
Чарльз Вуд

6
Зверніть увагу, що ні питання, і це робить відповідь , що було поставлено питання: «це [це] гарна практика , щоб зробити .gitignore в репозиторій Git?».
papercowboy

5
@cayuu Я вважаю, що у відповіді сказано, що "це хороша практика .gitignore" xyz, я не бачу, як це відповідає на питання. питання полягає в тому, чи слід .gitignore контролювати версію чи ні.
нігтограф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.