Как да се върна (върне), за да се ангажират по-ранна стека преливане на Руски
Този въпрос може да се разбира по различни начини:
- Какво означава да се върне или да се търкаля: просто погледнете, промяна на съдържанието на работното пространство, да промените историята на Git?
- Какво точно се върне назад: работно място (worktree), индексът (постановка площ ангажират, постановка площ), сегашната власт, дистанционно клон?
- Коя позиция намаление на цените: индекс, последният се задължава да произволна ангажират?
Ще означаваме първоначалното състояние на следната диаграма:
А. Б. В. D - задължава да майстор клон.
(Главата) - Глава указател местоположение.
(I) - състояние на индекса Git. Ако съвпада с (ръководител) - празен. Ако не - то съдържа подготвят промени за следващия ангажимент.
(WT) - състоянието на работното място проект (работна дървото). Ако съвпада с (I) - няма свободен индексирана промени, ако не е същото - има промяна.
↑ означава ангажират, което показва определен клон или показалец.
Това са решения, в зависимост от задачата:
Ако просто трябва да превключите към друг ангажимент, например, да разгледаме съдържанието му, достатъчен контрол Git поръчка:
Сега хранилището е в състояние на «самостоятелна HEAD». За да се върнете обратно, използвайте името на клона (например, магистър):
Ако искате да продължите с друг ангажимент, имате нужда от нов ред. Можете да включите и да го създаде като екип:
3.1 Безопасно ли е - с помощта на джоба (Сташ)
3.1.1 Само не-индексирани
Вие може да бъде отстранен, за да джоб само промените, които все още не са индексирани (добавете команда):
3.1.2 индексирани и не
Тази команда отменя всички индексирани и не-индексирани промени в работната зона, като ги съхранява в джоба (Сташ).
Възстановяване на незапазени промени. лесно и просто.
Ако не е необходимо скривалище, тя може да бъде премахната.
След това, възстановяване на промените все още са възможни, но по-сложна: Как да се възстанови спадна скривалище в Git?
3.2 Опасност май
Внимание! Тази команда изтрива сегашните незаписани промени от работното пространство и от индекса, ако те все пак ще трябва, използвайте Git скривалище.
Тук ние ще използваме Git изчисти --hard
4.1 В същото време запазване на промените в индекса на хранилище:
След това индексът на хранилище ще съдържа всички промени от cccccc да dddddd. Сега можете да направите нов ангажимент (или повече) на базата на тези промени.
4.2 Запазване на промените в работното пространство, но не и в индекса.
Тази команда просто премества клон показалеца, но не се отрази промяната в индекса (тя ще бъде празен).
4.3 Само хвърлят промяната.
Внимание! Тази команда изтрива сегашните незапазени промени. Ако изтрит не комит принадлежат към всеки друг клон, те също ще бъдат загубени.
Възстановяване задължава. Използвайте Git reflog и този въпрос да се намери и да се възстанови заявява ангажимента; в противен случай събирачът ще ги премахне за постоянно след известно време.
Използвайте командата Git отмениш. Той създава нови ангажира, по един за всеки отнет ангажират. По този начин, ако искате да отмените всички задължава след аааааа: