Като софтуер за контрол на версиите, Git прави предвидимо лесно връщането на промените. Но дори концепцията за отмяна на промяната е по-сложна, отколкото може да си помислите на пръв поглед. Git хранилище не е съвсем същото нещо като набора от файлове, върху които работите локално. Отмяната на промените означава да обмислите точно къде искате да ги отмените.

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

Какво означава нулиране на файл все пак?

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

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

instagram viewer

Следните термини са от ключово значение за разбирането на разликата: работно дърво, етапна зона и хранилище. Файловете, които редактирате локално, принадлежат към работното дърво. Файловете, които ангажирате, в крайна сметка се озовават в хранилището. Когато сте в процес на събиране на промени, вие поставяте файлове. Файлът може да има различно съдържание на всяко от тези места.

Вижте също: Разширен урок за Git

Може да мислите, че нулирането на файл е отмяна на промените. Но състоянието на вашия файл ще определи какви промени всъщност отменяте. Очевидният случай е, когато правите някои промени, извършвате ги, след което по-късно решавате, че вече не ги искате.

Друг случай може да е, че сте подредили файл и сега искате да го деинсталирате.

Как да върна назад записан по-рано файл?

Нека да се справим със случай, който е по-лесен за разбиране: извършихте файл и сега искате да върнете промените в него.

Командата на Git за това е наречена малко неинтуитивно Разгледайте. Може да сте използвали Разгледайте преди да превключите клонове, но това е малка част от това, което командата може да направи. Той също така ви позволява да актуализирате файлове в работното си дърво, за да съответстват на тези във всеки момент от историята на хранилището. Можете да направите това за конкретен маркер, клон или дори конкретен комит.

Най-полезната форма на тази команда с общо предназначение е:

git checkout [идентификатор на записване] -- път/до/файл

Тук минаваме по определен път (път/до/файл), който идентифицира само един файл. Също така посочваме идентификатор на комит, за да получим файла, какъвто е съществувал при този конкретен комит. Тази команда ще актуализира файла само в нашето работно дърво.

Обърнете внимание, че изтеглянето на по-ранна версия на файла променя работното копие, без да го записва или дори да го поставя. За да завършите напълно отмяната в хранилището, ще трябва да поставите файла и да създадете нов комит.

Вижте също: Как да проверите историята на проекта с git log

Как да променя това, което поставям?

Другият тип отмяна включва вашата зона за сцениране. Това съдържа промените, които ще извършите до хранилището. Ако сте поставили версия на файл и по-късно решите, че не искате да го включите в следващия комит, ще искате първо да го деинсталирате.

Можете да използвате git нулиране команда за демонтиране на поетапен файл:

git reset HEAD път/към/файл

Мога ли бързо да отменя местните промени?

Да, можете да отмените промените в локален файл, преди да бъде поставен. Използвайте следната команда:

git checkout -- път/до/файл

Имайте предвид, че това е подобно на връщане назад на промяна на хранилището, просто пропуска идентификатора на комит. След като изпълните тази команда, Git ще отмени всички промени във вашето работно копие.

Какво ще кажете за възстановяването на git?

По-късните версии на Git имат по-нова команда: Възстанови. За простите случаи, които обсъдихме тук, можете да използвате следните еквиваленти. За да отмените промяна в хранилището:

git recover --source [идентификатор на записа] път/до/файл

За да деинсталирате файл, използвайте:

git recover --поетапен път/до/файл

И за да отмените промените в работното копие:

git възстановяване път/до/файл

Овладяването на версията на Git е безценно

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

Как да премахнете файл от Commit в Git

Използвайте тези Git команди, за да изпълнявате операции като премахване на файл от комит.

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • GitHub
  • Уеб разработка
  • Програмиране
За автора
Боби Джак (63 публикувани статии)

Боби е технологичен ентусиаст, който е работил като разработчик на софтуер през повечето от две десетилетия. Той е запален по игрите, работи като главен редактор в Switch Player Magazine и е потопен във всички аспекти на онлайн публикуването и уеб разработката.

Още от Боби Джак

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате