Git

Как да отмените последния ангажимент в Git

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

Настройване на тестово хранилище на Git:

В този раздел ще клонирам едно от моето хранилище на GitHub на компютъра си, за да настроя тестово хранилище за тази статия. Ако искате да продължите, можете да го направите също. Ако имате собствено хранилище за Git, с което да работите, тогава страхотно! Можете да го използвате и вие.

За клониране на едно от моето хранилище на GitHub (https: // github.com / dev-shovon / my-project), изпълнете следната команда:

$ git clone https: // github.com / dev-shovon / my-project undo_commit_demo

Хранилището на GitHub трябва да бъде клонирано undo_commit_demo / директория.

Сега отидете до undo_commit_demo / директория, както следва:

Ангажиментът, който искате да отмените, може да е в различен клон като моя. Искам да отмените последния фиксация на т.е. поправка клон. И така, трябва да дръпна клона т.е. поправка от моето хранилище на GitHub.

Можете да издърпате т.е. поправка клон от GitHub, както следва:

$ git pull origin, т.е

ЗАБЕЛЕЖКА: Тук, т.е. поправка е името на клона.

The т.е. поправка клон трябва да се изтегли.

Сега, плащане в клона (в моя случай, т.е. поправка), от който искате да отмените последния ангажимент, както следва:

$ git checkout ie-fix

Както можете да видите, последният коммит на т.е. поправка клон е aec00f3. В следващите раздели ще ви покажа начини за отмяна на последния ангажимент във вашето хранилище на Git.

Отмяна на последния ангажимент и запазване на промените:

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

Както можете да видите, последният ангажимент в моя т.е. поправка клон е aec00f3.

$ git log --oneline

Също така, зоната ми за подреждане е чиста.

$ git статус

Сега, за да премахнете или отмените последния фиксиране, изпълнете следната команда:

$ git reset --soft HEAD ~ 1

Както можете да видите, ангажирането aec00f3 го няма.

$ git log --oneline

Също така, файлът, който модифицирах при последното фиксиране, е в моята подреждане.

$ git статус

Сега можете допълнително да модифицирате файловете, да поправите грешките, които сте допуснали, и да извършите промените отново.

Отмяна на последното фиксиране и премахване на промените:

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

Ще изтегля т.е. поправка клон от моето хранилище на GitHub отново, за да възстановите последния фиксиране aec00f3 и го премахнете отново в този раздел.

$ git pull origin, т.е

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

Както можете да видите, моята сцена е чиста.

$ git статус

Сега, за да премахнете последния ангажимент и да премахнете промените в него, изпълнете следната команда:

$ git reset --hard HEAD ~ 1

Последният ангажимент трябва да бъде премахнат и ГЛАВА указателят трябва да се актуализира.

Както можете да видите, ангажирането aec00f3 се премахва и фиксирането непосредствено преди това (3fffdee) е текущата последна фиксация.

$ git log --oneline

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

$ git статус

Актуализиране на отдалечено хранилище на Git:

След като успешно сте премахнали дефектния коммит от вашето Git хранилище, може да искате да актуализирате и вашето GitHub хранилище. Това е темата на този раздел.

Както виждаш, git статус също показва, че изоставам с 1 запис от отдалеченото хранилище.

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

За да синхронизирате локалното хранилище Git с хранилището GitHub, изпълнете следната команда:

$ git push --force origin т.е.-fix

Промените в локалното хранилище на Git трябва да се синхронизират с хранилището на GitHub.

Хранилището на GitHub трябва да бъде актуализирано. Както можете да видите, ангажирането aec00f3 вече не е в списъка. Ангажирането непосредствено преди aec00f3, кое е 3fffdee сега е последният ангажимент.

И така, можете да отмените последния ангажимент в Git. Благодаря, че прочетохте тази статия.

Най-добрите дистрибуции на Linux за игри през 2021 г
Операционната система Linux е изминала дълъг път от първоначалния си, прост, базиран на сървъра външен вид. Тази операционна система се подобри неимов...
Как да заснемете и поточно предадете игралната си сесия на Linux
В миналото играта на игри се смяташе само за хоби, но с течение на времето игралната индустрия отбеляза огромен ръст по отношение на технологиите и бр...
Най-добрите игри за игра с ръчно проследяване
Oculus Quest наскоро представи страхотната идея за ръчно проследяване без контролери. С непрекъснато нарастващия брой игри и дейности, които изпълнява...