19 ответов:
The
.gitignoreфайл должен быть в вашем репозитории, поэтому он действительно должен быть добавлен и зафиксирован, какgit statusпредполагает. Он должен быть частью дерева репозитория, чтобы изменения в нем можно было объединить и так далее.Итак, добавьте его в свой репозиторий, он не должен быть gitignored.
если вы действительно хотите, вы можете добавить
.gitignoreдо.gitignoreфайл, если вы не хотите, чтобы это было совершено. Однако в этом случае, вероятно, лучше добавить игнорирует.git/info/excludeспециальная checkout-локальный файл, который работает так же, как .gitignore, но не отображается в "git status", так как он находится в.gitпапка.Смотрите также https://help.github.com/articles/ignoring-files
Если вы хотите сохранить список игнорируемых файлов вне вашего дерева Git, вы можете использовать .git / info / exclude. Он применяется только к вашей проверке РЕПО.
вы могли бы на самом деле поставить линию ".gitignore" into your".файл гитюдного". Это вызвало бы ".gitignore " файл, который будет игнорироваться git. Я на самом деле не думаю, что это хорошая идея. Я думаю, что файл ignore должен контролироваться версией и отслеживаться. Я просто выкладываю это для полноты картины.
у вас также может быть глобальный пользователь git
.gitignoreфайл, который будет автоматически применяться к все ваш РЕПО. Это полезно для IDE и файлов редактора (например,swpи*~файлы для Vim). Изменить расположение каталога для своей ОС
добавить в
~/.gitconfigfile[core] excludesfile = /home/username/.gitignoreсоздать
~/.gitignoreфайл с шаблонами файлов, которые будут игнорироватьсясохраните файлы dot в другом репо, чтобы вы есть резервная копия (необязательно).
каждый раз, когда вы копируете, инициализируете или клонируете РЕПО, ваш глобальный файл gitignore также будет использоваться.
после добавления
.gitignorefile и зафиксируйте его, он больше не будет отображаться в списке "untracked files".git add .gitignore git commit -m "add .gitignore file" git status
Если кто-то уже добавил
.gitignoreдля вашего РЕПО, Но вы хотите внести в него некоторые изменения и игнорировать эти изменения, выполните следующие действия:
git update-index --assume-unchanged .gitignore
просто упаковать кто-то еще имеет ту же боль, что и мы. Мы хотели исключить файл, который уже был совершен.
этот пост был полезным: работа .git / info / исключить слишком поздно
в частности, то, что вам нужно игнорировать файл, на самом деле использует команду git remove Смотрите git rm (http://www.kernel.org/pub/software/scm/git/docs/git-rm.html)
вы проверить ее
git rm --dry-run *.log
(если вы говорите, что хотите исключить все файлы журнала)это будет выводить, что будет исключено, если вы запустили его.
затем
вы запускаете его, идя
git rm *.log
(или любой путь к имени файла / выражение, которое вы хотите)добавить
*.logстроку .
идея состоит в том, чтобы поместить файлы, которые являются специфичными для вашего проекта в
.gitignoreфайл и (как уже упоминалось) добавить его в репозиторий. Например.pycи.oфайлы, журналы, которые создает testsuite, некоторые светильники и т. д.для файлов, которые создает ваша собственная установка, но которые не обязательно будут отображаться для каждого пользователя (например
.swpфайлы если вы используете vim, скрытые каталоги ecplise и тому подобное), вы должны использовать.git/info/exclude(как уже упоминалось).
конечно .файл gitignore отображается в статусе, потому что он не отслеживается, и git видит его как вкусный новый файл, чтобы поесть!
С тех пор .gitignore-это неотслеживаемый файл, однако он является кандидатом, который будет игнорироваться git при его вводе .гитюдного!
Итак, ответ прост: просто добавьте строку:
.gitignore # Ignore the hand that feeds!в свой .gitignore file!
и, вопреки ответу августа, я должен сказать, что это не так.gitignore file должны быть в вашем репозитории. Просто так получилось, что это можете быть, что часто удобно. И это, вероятно, правда, что это причина .gitignore был создан в качестве альтернативы .git / info / exclude, который не имеет возможности отслеживаться репозиторием. Во всяком случае, как вы используете ваш .файл gitignore полностью зависит от вас.
Для справки, проверьте gitignore (5) manpage on kernel.org.
прежде всего, как уже говорили многие другие, Ваш
.gitignoreдолжны быть отслежены с помощью Git (и поэтому не следует игнорировать). Позвольте мне объяснить почему.(TL; DR: commit the
.gitignoreфайл, и использовать глобальные.gitignoreигнорировать файлы, созданные вашей IDE или операционной системой)Git-это, как вы, наверное, уже знаете,распределенная система контроля версий. Это означает, что он позволяет переключаться обратно и далее между различными версиями (даже если разработка разошлась в разные ветви), а также позволяет нескольким разработчикам работать над одним и тем же проектом.
хотя отслеживание
.gitignoreтакже имеет преимущества при переключении между снимками, наиболее важной причиной для фиксации является то, что вы хотите поделиться файлом с другими разработчиками, которые работают над тем же проектом. Фиксируя файл в Git, другие участники автоматически получат когда они клонируют репозиторий, поэтому им не придется беспокоиться о случайном фиксации файла, который не должен быть зафиксирован (например, файлы журналов, каталоги кэша, учетные данные базы данных и т. д.). И если в какой-то момент проект.gitignoreобновляется, они могут просто вытащить эти изменения вместо того, чтобы редактировать файл вручную.конечно, будут некоторые файлы и папки, которые вы хотите игнорировать, но это специфично для вас и не относится к другим разработчикам. Однако, они не должны быть в проекте
.gitignore. Есть еще два места, где вы можете игнорировать файлы и папки:
- файлы и папки, созданные вашей операционной системой или IDE, должны быть помещены в глобальные
.gitignore. Преимущество в том, что это.gitignoreприменяется ко всем репозиториям на вашем компьютере, поэтому вам не нужно повторять это для каждого репозитория. И это не совместно с другими разработчиками, так как они могут использовать другой операционная система и/или IDE.- файлы, которые не принадлежат к проекту
.gitignore, ни в глобальной.gitignore, можно игнорировать, используя явный репозиторий исключает вyour_project_directory/.git/info/exclude. Этот файл не будет использоваться совместно с другими разработчиками и предназначен только для одного репозитория
следите за следующей "проблемой" иногда вы хотите добавить каталоги, но не файлы в этих каталогах. Простое решение заключается в создании .gitignore со следующим содержанием:
*Это швы, чтобы работать нормально, пока вы не поймете, что каталог не был добавлен (как и ожидалось в свой репозиторий. Причина в том, что .gitignore также будет игнорироваться, и тем самым каталог будет пуст. Таким образом, вы должны сделать что-то вроде этого:
* !.gitignore
Это, кажется, работает только для текущего каталога, чтобы получить
Gitигнорировать все файлы из репозитория.обновить этот файл
.git/info/excludeС вашей дикой картой или именем файла
*pyc *swp *~
в моем случае, я хочу исключить существующий файл. Только изменение .gitignore не работает. Я сделал следующие шаги:
git rm --cached dirToFile/file.php vim .gitignore git commit -aтаким образом, я убирал из кэша файл, который я хотел исключить и после того, как я добавил его в .gitignore.
перейдите в базовый каталог вашего репозитория git и выполните следующую команду:
echo '\.*' >> .gitignoreвсе точечные файлы будут проигнорированы, включая этот досадный .DS_Store, если вы находитесь на mac.
если вы уже регистрировались .gitignore и вы хотите игнорировать изменения к нему, проверить ответ:
попробуйте использовать эту команду:
git update-index --assume-unchanged FILENAME_TO_IGNOREчтобы отменить его (если вы когда-нибудь захотите внести в него изменения), используйте:
git update-index --no-assume-unchangedобновление:
вот как список 'предположим, без изменений' файлы в текущей каталог:
git ls-files -v | grep -E "^[a-z]"как
-vопция будет использовать строчные буквы для "считать неизменным" файлы.
вполне возможно, что конечный пользователь хочет, чтобы Git игнорировал ".файл гитюдного" просто потому, что определенные папки IDE, созданные с помощью Eclipse, вероятно, не то же самое как NetBeans или другую интегрированную среду разработки. Таким образом, чтобы сохранить исходный код IDE антагонистичным, это упрощает жизнь, чтобы иметь пользовательский git ignore, который не разделяется со всей командой, поскольку отдельные разработчики могут использовать разные IDE.
Я думаю, что есть ситуации, когда игнорирование .пример очень полезен. Например, когда у вас есть несколько команд или большая команда, работающая над одной и той же кодовой базой. В этом случае вам нужно иметь определенные соглашения, одно из которых касается того, что игнорируется в репо git. Обычно речь идет об игнорировании файлов и каталогов, созданных IDE или ОС, некоторых сгенерированных журналов и т. д.
однако, есть сила, которая стремится ввести нетрадиционные изменения к . Элемент
.gitignoreфайл может быть дополнительно изменен безответственным человеком, по ошибке, с помощью инструмента, который используется, или в каком-то другом случае.чтобы иметь противодействие этому, мы можем сделать следующее:
- начальный .gitignore должен отражать конвенцию в команде(ах),
- после того, как он толкнул, что .gitignore должен быть обеспечен путем добавления .gitignore запись и нажмите, что изменение снова.Элемент Это "загерметизированная" в этом путь.
"загерметизированная"
.gitignoreфайл может быть изменен, просто локально, без распространения этого изменения на других членов команды(ов). Однако, если изменение широко согласовано во всей команде(ах), чем можно "вскрыть" его, изменить его и чем "запечатать" его снова. Это не может быть сделано по ошибке, только умышленно.к сожалению, вы не можете быть на 100% защищены от глупости, но таким образом вы сделали все возможное, чтобы предотвратить глупость что-то должно произойти.
если у вас есть относительно небольшая команда с очень хорошими профессионалами, чем это не было бы важно, но даже эти ребята были бы признательны, чтобы иметь одну вещь меньше беспокоиться.
используя
.git/info/excludeэто круто, когда вы ничего не можете сделать с настройками инфраструктуры, просто покрывая свой собственный**, чтобы не ошибиться.С точки зрения того, что правильно и что неправильно, я голосую за то, чтобы иметь .gitignore запись внутри , давая каждому свободу делать на местном уровне все, что они хотят, но не вторгаясь в других.
Я нашел, что лучшее место, чтобы настроить игнорировать досадный
.DS_Storeфайлы в .IntelliJ, кажется, делает это автоматически при настройке репозитория git в нем.
.gitignoreэто игнорирование другое файлы. git - это файлы, поэтому речь идет об игнорировании файлов. Однако, поскольку git работает с файлами, этот файл должен быть там в качестве механизма для перечисления других имен файлов.Если бы он назывался
.the_list_of_ignored_filesэто может быть немного более очевидным.аналогия-это список дел, которые вы не хотите делать. Если вы не перечислите их где-то, это какой-то список "дел", вы не будете знать о них.
Comments