Поправка: Gitignore не работи

GitHub се очертава като водещ пионер в областта на сътрудничеството с кодове и споделянето на хранилища. GitHub е предимно софтуер за контрол на версиите, който позволява на потребителите да контролират разпределен контрол на версиите и SCM (управление на изходния код). Тази платформа се използва от големи фирми и компании по целия свят.

Платформи като тези имат своите технически характеристики и проблеми. Един специфичен проблем, с който са се сблъскали кодерите, е, че .gitignore не работи в GitHub. Платформата или игнорира .gitignore, или работи частично. Интересно е да се отбележи, че проблемът може да е малко по-различен във всеки случай, тъй като всеки случай е напълно различен сценарий. Решенията, които изброяваме обаче, ще съдържат корекции, които ще работят универсално.

Какво е .gitignore?

Git (или GitHub) вижда всеки файл във вашата работна директория. Той характеризира всеки файл като един от трите:

  • Проследява се: Тези файлове са или ангажирани, или инсценирани по-рано в историята.
  • Без проследяване: Това са файловете, които не са били предварително инсценирани или ангажирани.
  • Игнорирани: Това са файловете, които самият потребител каза на Git да игнорира напълно.

Тези игнорирани файлове могат да варират от сценарий до сценарий и са предимно машинно генерирани файлове или изграждане на артефакти. Това е обичайната практика; може да игнорирате различни други файлове според вашите собствени нужди. Някои примери за тези файлове са:

  • Компилиран код: Тези файлове обикновено са с разширение .class, .pyc, .ccp и др.
  • Скрити системни файлове: Това са файлове, които се използват от системата за нейните операции, но са скрити от обикновения изглед, например DS_Store или Thumbs.db и т.н.
  • Изграждане на изходни директории: Това са предимно от директориите на / bin, / out и т.н.
  • Кешове на зависимости: Тези файлове може да са съдържанието на / node или / package модули.
  • Конфигурационни файлове на IDE: Това са конфигурационни файлове, които са създадени или управлявани предимно от вашия IDE софтуер.
  • Файлове, генерирани по време на изпълнение: Има някои програми, които създават файлове по време на изпълнение. Ако някой от тези кодове се изпълни, някои файлове могат да бъдат генерирани по време на изпълнение във вашата работна папка и може да ги игнорирате в Git.

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

Какво причинява .gitignore да не работи?

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

Ето няколко решения, които може да ви помогнат. Всяко решение може да не е приложимо във вашия случай, така че не забравяйте да преминете към следващото, ако първоначалните условия не са изпълнени.

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

Излезе интересен случай, при който видяхме, че .gitignore файлът е създаден в грешен формат. Този конкретен проблем възникна, когато потребителите създадоха файла, използвайки приложението по подразбиране на Notepad в Windows OS. Оказва се, че Notepad записва файла в Unicode вместо във формат ANSI. В това решение ще запазим промените в Notepad в правилния формат на .gitignore и ще видим дали това решава проблема.

Забележка: Трябва да премахнете разширението .txt от файла, когато създавате нов файл с помощта на Notepad.

  1. След като напишете кода или промените в нов текстов документ в Notepad, щракнете върху File и изберете Save As .
  1. Сега пред Encoding изберете ANSI . Сега премахнете разширението на файла .txt и запазете файла с името ' .gitignore '. Изберете правилната директория и запазете.
  1. Сега отидете до директорията и проверете дали е създаден правилният файл. Сега го тествайте отново с Git и вижте дали функцията Ignore работи както се очаква.

Разработчиците трябва да се въздържат от използването на Notepad по подразбиране в 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 отново без никакви проблеми.