Я только что создал репозиторий Github и задавался вопросом, для чего был файл .gitignore
. Я начал с того, что не создал его, но добавил один из-за того, что в большинстве хранилищ есть один.
Нужно ли иметь его? Можно ли/просто игнорировать его или использовать?
Я провел некоторое исследование по этому вопросу, но не смог найти конкретного объяснения.
Что такое .gitignore точно?
Ответ 1
.gitignore
сообщает git, какие файлы (или шаблоны) он должен игнорировать. Обычно это используется, чтобы избежать передачи временных файлов из вашего рабочего каталога, которые не являются полезными для других соавторов, таких как продукты компиляции, создание временных файлов IDE и т.д.
Здесь вы можете найти подробные сведения .
Ответ 2
Это список файлов, которые вы хотите git игнорировать в рабочем каталоге.
Скажите, что вы на Mac, и у вас есть файлы .DS_Store во всех ваших каталогах. Вы хотите, чтобы git игнорировал их, поэтому вы добавляете .DS_Store как строку в .gitignore. И так далее.
Документы git расскажут вам все, что вам нужно знать: http://git-scm.com/docs/gitignore
Ответ 3
Когда вы совершаете фиксацию, вы не хотите случайно включать временные файлы или создавать определенные папки. Следовательно, используйте .gitignore
, перечисляя элементы, которые вы хотите игнорировать, от фиксации.
Кроме того, важно git status
- одна из наиболее часто используемых команд, где вы хотите, чтобы git status
отображал файлы, которые были изменены.
Вы хотели бы, чтобы ваш список git status
выглядел чистым из нежелательных файлов. Например, я изменил a.cpp, b.cpp, c.cpp, d.cpp & e.cpp
Я хочу, чтобы мой git status
отображал следующее:
git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
Я не хочу, чтобы git status
отображал измененные файлы, подобные этому, с промежуточными объектными файлами и файлами из папки сборки
git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
.DS_Store
/build/program.o
/build/program.cmake
Следовательно, чтобы освободиться от git status
, чтобы перечислить эти промежуточные временные файлы и случайно передать их в репо, я должен создать .gitignore
, который все делают. Все, что мне нужно сделать, перечислять файлы и папки в .gitignore
, которые я хочу исключить из фиксации.
Следующим является мой .gitignore
, чтобы избежать передачи ненужных файлов
/*.cmake
/*.DS_Store
/.user
/build
Ответ 4
Есть файлы, которые вы не хотите, чтобы Git регистрировался. Git видит каждый файл в вашей рабочей копии как одну из трех вещей:
- отслеживаемый - файл, который был предварительно поставлен или зафиксирован;
- неотслеживаемый - файл, который не был поставлен или зафиксирован; или
- игнорируется - файл, который Git явно сказал игнорировать.
Проигнорированные файлы - это, как правило, встроенные артефакты и сгенерированные компьютером файлы, которые могут быть получены из источника в вашем хранилище или иначе не должны быть зафиксированы. Вот некоторые распространенные примеры:
- кэши зависимостей, такие как содержимое
/node_modules
или/packages
- скомпилированный код, такой как файлы
.o
,.pyc
и.class
- создавать выходные каталоги, такие как
/bin
,/out
или/target
- файлы, созданные во время выполнения, такие как
.log
,.lock
или.tmp
- скрытые системные файлы, такие как
.DS_Store
илиThumbs.db
- личные файлы конфигурации IDE, такие как
.idea/workspace.xml
Проигнорированные файлы отслеживаются в специальном файле с именем .gitignore
, который проверен в корне вашего хранилища. Не существует явной команды git ignore: вместо этого файл .gitignore
необходимо редактировать и фиксировать вручную, когда у вас есть новые файлы, которые вы хотите игнорировать. Файлы .gitignore
содержат шаблоны, которые сопоставляются с именами файлов в вашем хранилище, чтобы определить, следует ли их игнорировать. Вот образец образца .gitignore
.
Для получения более подробной информации смотрите эту ссылку
Ответ 5
Основная цель .gitignore - чтобы вы не добавляли свои пароли и т.д. В Git
Не доверяйте своим секретам в интернете
Github есть в интернете. Если вы разместите свой код в Интернете (например, на Github), то вам действительно нужно убедиться, что вы не ставите там ничего компромиссного, например, пароли, или учетные данные безопасности, или секреты. Конечно, у Github есть безопасность, но что если эта безопасность будет скомпрометирована? Вы не хотите подрывать всю безопасность вашего приложения просто потому, что безопасность Github подорвана. Какое же решение?
Попросить Git игнорировать некоторые файлы
Вы можете попросить git игнорировать определенные файлы, которые необходимы для работы вашего приложения (например, пароли или секреты). Таким образом, когда вы размещаете свой код в Интернете, ничего не произойдет, даже если кому-то удастся увидеть ваш код. И если вы работаете над проектом с открытым исходным кодом - опять же есть некоторые вещи, которые вы просто не хотите проверять в git.
Другие файлы не принесут вам пользы, если вы включите их. например предварительно скомпилированные активы в рельсах. Это можно перекомпилировать на вашем сервере с помощью граблей.
Все, что находится в файле .gitignore, игнорируется Git. Что ты хочешь!