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

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

.gitignore

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

Какво е .gitignore?

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

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

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

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

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

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

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

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

Решение 1: Проверка на .gitignore File

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

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

  1. След като напишете кода или промените в нов текстов документ в Notepad, щракнете върху File и изберете Save As .

Запиши като - Бележник
  1. Сега пред Encoding изберете ANSI . Сега премахнете разширението на файла .txt и запишете файла с името ' .gitignore '. Изберете правилната директория и запазете.

Избор на ANSI като тип кодиране
  1. Сега отворете директорията и проверете дали е създаден правилния файл. Сега го тествайте отново с Git и вижте дали функцията Ignore работи както се очаква.

Разработчиците трябва да се въздържат от използване на Notepad по подразбиране в Windows. Вместо това трябва да използвате подходящ тефтер за програмисти. Някои примери включват Notepad ++ и т.н. В тях няма да имате проблеми като тези.

Забележка: Ако файлът ви вече е запазен във формат UNICODE, трябва да запазите правилно съдържанието във формат ANSI, ако искате файлът ви да бъде разпознат правилно от Git.

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

Друго условие, при което .gitignore работи е, че вашият файл все още не е част от хранилището . Това е много съществен аспект, тъй като ако това е вярно, файлът няма да бъде игнориран, тъй като вече е добавен в хранилището. Git не може да пренебрегне това, дори ако поставите неговото име или правило във файла .gitignore. Така че по същество Git игнорира само непроследени файлове .

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

Решение 3: Повторно добавяне на файлове в хранилището

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

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

  1. Изпълнете следната команда. Това ще неутрализира и ще премахне пътищата до вашите файлове от git индекса по рекурсивен начин.
 git rm -r - кеширан. 
  1. След като това се изпълни, трябва да изпълните следната команда. Това ще добави всички ваши файлове обратно и тъй като .gitignore ще има правилата, само правилните файлове ще бъдат актуализирани.
 git add. 
  1. Сега ще ангажираме всички ваши файлове обратно в индекса, използвайки кода по-долу:
 git commit -m ".gitignore вече работи" 

Сега проверете вашите файлове и вижте дали проблемът е решен и можете да използвате .gitignore отново без никакви проблеми.

Интересни Статии