Исправлено: Gitignore не работает

GitHub стал ведущим пионером в области совместной работы над кодом и совместного использования репозиториев. GitHub - это в первую очередь программное обеспечение для контроля версий, которое позволяет пользователям управлять распределенным контролем версий и SCM (управление исходным кодом). Эту платформу используют крупные предприятия и компании по всему миру.

У подобных платформ есть свои технические особенности и проблемы. Одна конкретная проблема, с которой столкнулись кодеры, заключалась в том, что .gitignore не работал в GitHub. Платформа либо игнорировала .gitignore, либо работала частично. Интересно отметить, что проблема может немного отличаться в каждом случае, поскольку каждый случай представляет собой совершенно другой сценарий. Однако перечисленные нами решения будут содержать исправления, которые будут работать повсеместно.

Что такое .gitignore?

Git (или GitHub) видит каждый файл в вашем рабочем каталоге. Он характеризует каждый файл как один из трех:

  • Отслеживается: эти файлы либо зафиксированы, либо ранее помещены в историю.
  • Не отслеживаемые: это файлы, которые ранее не были подготовлены или зафиксированы.
  • Игнорируется: это файлы, которые сам пользователь сказал Git полностью игнорировать.

Эти игнорируемые файлы могут варьироваться от сценария к сценарию и в основном представляют собой файлы, созданные компьютером или артефакты сборки. Это обычная практика; вы можете игнорировать различные другие файлы в соответствии с вашими потребностями. Вот некоторые примеры этих файлов:

  • Скомпилированный код: эти файлы обычно имеют расширение .class, .pyc, .ccp и т. Д.
  • Скрытые системные файлы: это файлы, которые используются системой для ее операций, но скрыты от обычного просмотра, например DS_Store или Thumbs.db и т. Д.
  • Каталоги вывода сборки: в основном это каталоги / bin, / out и т. Д.
  • Кеши зависимостей: эти файлы могут быть содержимым модулей / node или / packages.
  • Файлы конфигурации IDE: это файлы конфигурации, которые в основном создаются или управляются вашим программным обеспечением IDE.
  • Файлы, создаваемые во время выполнения: есть некоторые программы, которые создают файлы во время выполнения. Если любой из этих кодов запущен, некоторые файлы могут быть созданы во время выполнения в вашей рабочей папке, и вы можете проигнорировать их в Git.

Любой файл, который вы хотите игнорировать, отслеживается в специальном файле с именем .gitignore, который в основном проверяется в корне вашего рабочего репозитория. Согласно официальной документации GitHub по этому вопросу, конкретной команды gitignore не существует. Вместо этого вам нужно вручную отредактировать файл, который вы хотите игнорировать. Файл .gitignore содержит шаблоны, которые сопоставляются с именами файлов в вашем рабочем репозитории, и они используются, чтобы помочь определить, следует ли игнорировать конкретный файл или нет.

Что заставляет .gitignore не работать?

Функция .gitignore может работать отлично, но вы могли неправильно ее настроить. Во всех наших опросах мы приходили к выводу, что модуль действительно работает. Причина, по которой кодеры не могут использовать эту функцию, в основном потому, что они неправильно настроили файл или есть некоторые условия, которые не выполняются в базовом коде.

Вот несколько решений, которые могут сработать для вас. Каждое решение может быть неприменимо в вашем случае, поэтому убедитесь, что вы переключились на следующее, если начальные условия не выполняются.

Решение 1.Проверка файла .gitignore

Возник интересный случай, когда мы увидели, что файл .gitignore был создан в неправильном формате. Эта конкретная проблема возникла, когда пользователи создавали файл с помощью приложения по умолчанию - Блокнота в ОС Windows. Оказывается, Блокнот записывает файл в формате Unicode, а не в формате ANSI. В этом решении мы сохраним изменения Блокнота в правильном формате .gitignore и посмотрим, решит ли это проблему.

Примечание. Вам необходимо удалить расширение .txt из файла при создании нового файла с помощью Блокнота.

  1. После написания кода или изменений в новом текстовом документе в Блокноте щелкните Файл и выберите Сохранить как .
  1. Теперь перед Encoding выберите ANSI . Теперь удалите расширение файла .txt и сохраните файл с именем .gitignore . Выберите правильный каталог и сохраните.
  1. Теперь перейдите в каталог и проверьте, создан ли правильный файл. Теперь проверьте это еще раз с помощью Git и посмотрите, работает ли функция игнорирования должным образом.

Разработчикам следует воздерживаться от использования блокнота по умолчанию в Windows. Вместо этого вам следует использовать настоящий «программистский» блокнот. Некоторые примеры включают Notepad ++ и т. Д. В них у вас не будет таких проблем.

Примечание. Если ваш файл уже сохранен в формате UNICODE, вам следует правильно сохранить содержимое в формате ANSI, если вы хотите, чтобы ваш файл правильно определялся Git.

Решение 2. Проверка файла, который вы пытаетесь игнорировать

Еще одно условие, при котором работает .gitignore, - это то, что ваш файл еще не должен быть частью репозитория . Это очень важный аспект, так как если это правда, файл не будет проигнорирован, поскольку он уже добавлен в репозиторий. Git не может игнорировать это, даже если вы поместите его имя или правило в файл .gitignore. По сути, Git игнорирует только неотслеживаемые файлы .

Вы должны посмотреть на свою структуру (репозиторий) и убедиться, что файл, который вы пытаетесь игнорировать, не добавлен в репозиторий. Если это так, вам придется удалить файл из репозитория и после фиксации последних изменений добавить его имя в .gitignore (вы также можете скопировать содержимое файла и после его удаления реплицировать его с другим именем) .

Решение 3. Повторное добавление файлов в репозиторий

Если вы уже добавили правила в .gitignore, но файлы, которые вы хотите игнорировать, уже добавлены, мы можем повторно добавить файлы. Добавление означает, что мы удалим все из индекса Git, а затем снова добавим все обратно в ваш репозиторий. Когда мы снова добавляем файлы с нуля, будут учитываться правила, которые вы добавили в .gitignore, и будут добавлены только правильные файлы.

Примечание. Перед выполнением этого решения следует также сделать резервную копию кода в другом месте. Всегда хорошо иметь резервную копию на всякий случай.

  1. Выполните следующую команду. Это приведет к деактивации и удалению путей к вашим файлам из индекса git рекурсивным образом.
git rm -r --cached.
  1. После того, как это будет выполнено, вы должны выполнить следующую команду. Это вернет все ваши файлы, и, поскольку .gitignore будет иметь правила, будут обновлены только правильные файлы.
git add.
  1. Теперь мы зафиксируем все ваши файлы обратно в индекс, используя приведенный ниже код:
git commit -m ".gitignore теперь работает"

Теперь проверьте свои файлы и посмотрите, решена ли проблема, и вы можете снова использовать .gitignore без каких-либо проблем.