Отмяна на ангажименти в GitHub
Полезни статии за оформление за дизайнери на оформление
7 април 2015 г.
И в един момент беше направена промяна в хранилището, която след това беше ангажирана и изпратена до GitHub. Трябва обаче да се отървете от тази промяна - тя е погрешна.
Но как да направите това, ако коммитът вече е в GitHub? В интерфейса на услугата GitHub не намерих необходимия бутон за изтриване на определен ангажимент и по този начин върнах хранилището в желаното състояние.
Това е така, защото комитите в GitHub се управляват чрез локално хранилище. По-долу има три лесни стъпки, за да покажете как се прави това.
Първа стъпка
Първо, трябва да получите списък с хеш суми на последните фиксирания на хранилището. Това е разбираемо - трябва да имате дърво на фиксиране пред вас, за да видите къде да отидете. В дървото на фиксиране хеш сумите са точки на въртене, идентификационните номера на всеки от фиксираните транзакции:
По-долу е обобщеният изход от командата git log - четирите най-скорошни фиксации на хранилището:
Трябва да върна хранилището от състоянието, описано в commit ee3a2ae6888fb87d, в състоянието, записано в commit 6d92268e42eace0c .
Стъпка втора
За целта ще използвам командата за нулиране с превключвателя --hard. Тази команда ми подхожда, защото няма да запазвам промените, извършени в ee3a2ae6888fb87d, тъй като те са напълно погрешни.
Както е описано подробно в Revert Changes in Git, можете да изпълните тази задача с командата:
където 6d92268e42eace0c е началните 16 знака от хеша на коммита, към който искам да прескоча. Пълната форма на хеш-сумата от 40 знака може да бъде пропусната - 16 знака са достатъчни, за да идентифицират надеждно конкретен ангажимент.
След изпълнението на тази команда локалното хранилище ще бъде възстановено до състоянието, записано в ангажимента 6d92268e42eace0c. С други думи, отървах се от последните грешни промени и върнах хранилището в предишното му състояние.
Това обаче е само половината от битката, тъй като връщането е засегнало само локалното хранилище. Тази статия е предимно за отдалечено хранилище, хоствано на GitHub. Как да постигнете подобни промени в GitHub?
Изглежда просто! Достатъчно е да изпълните командата:
Но всъщност това няма да работи - Git няма да ви позволи да направите това. Поради причината, че в момента състоянието на локалното хранилище има по-ранна версия от състоянието на отдалеченото хранилище.
Вместо това Git ще ви подкани да изпълните команда git pull, за да заведете локалното хранилище в отдалеченото.
Стъпка трета
За да принудите Git да изпълни обратната задача - за да приведете отдалеченото хранилище до локалното, трябва да използвате ключа -f .
Тоест да принуди промени и по този начин да „каже“ на Git да синхронизира отдалеченото хранилище с локалното хранилище, въпреки факта, че последното има по-ранна версия:
Заключение
Сега, ако проверим състоянието на отдалеченото хранилище на сървъра GitHub, ще видим, че то е идентично със състоянието на локалното хранилище. Но най-важното - последният грешен коммит беше премахнат, което исках.
- Възможно ли е да замените работещо USB флаш устройство Архив
- УНИВЕРСАЛНА ОФЕРТА превод от руски на английски, превод руски на английски
- Недвусмислено предложение
- Полза и вреда от рициново масло, симптоми на отравяне, помощ, лечение
- Програмируеми кристални осцилатори Epson