Что такое .gitignore точно?

Я только что создал репозиторий Github и задавался вопросом, для чего был файл .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 видит каждый файл в вашей рабочей копии как одну из трех вещей:

  1. отслеживаемый - файл, который был предварительно поставлен или зафиксирован;
  2. неотслеживаемый - файл, который не был поставлен или зафиксирован; или
  3. игнорируется - файл, который 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. Что ты хочешь!