Відмовтеся від Git Stash Pop


133

Я зробив git stash pop, і зараз у мене тонна конфліктів. Я вчинив весь свій останній код до цього git stash pop, тож чи є спосіб повернутися до останньої версії та позбутися від усіх конфліктів та git stash popкодувати введений?


Ви все ще хочете, щоб вискакувана робота була збережена, чи ви ніколи не хочете її більше бачити?
jscs

1
Ні, я не хочу працювати. Я робив сховку, як 4 місяці тому, і не знаю, що навіть там?
jdog

2
Чи дбаєте ви про речі, які не було випущено до зберігання?
Ендрю Маршалл

Ті, що були 4 місяці тому, або сьогодні? Я хочу те, що мав годину тому.
jdog

5
Якщо виникають конфлікти, коли ви, git stashто git не скине скрипт зі списку. Так git reset --hard HEADщо не знищує вискакувала робота.
jwadsack

Відповіді:


189

Про це вже задали відповіді в stackoverflow (див. Як повернути сховище Git до попереднього комітету? ), Але проста відповідь:

git reset --hard HEAD

Це повинно піклуватися про вашу проблему. Зауважте, що це видаляє всі незапущені зміни зі сховища.

Зауважте, що якщо є конфлікти, приховування зберігається. З прихованих документів :

Застосування держави може провалитися при конфліктах; у цьому випадку він не видаляється зі списку сховищ. Вам потрібно вирішити конфлікти вручну та зателефонувати git stash dropвручну після цього.


1
Це поверне ваше місцеве репо до останнього комітету. Ви маєте змогу без проблем пересувати всі свої зобов’язання (з моменту останнього натискання). Якщо це не спрацює, опублікуйте результати назад до попереднього питання). Удачі.
MichaelMilom

28
Але це втратить вашу сховище
К. Вебер,

19
@ K.Weber, якщо це git stash popпризведе до конфлікту, копія не буде видалена зі списку сховища .
Daiwei

1
Я не впевнений, хто виступає за "насправді ти не втратиш свою приховування", я просто втратив міну
Ентоні

4
Не так багато имхо рішення, так як воно вказує на те , що ви будете втрачати непідтвердженими зміни.
Іван П

4

Скидання також може бути викликано для певних файлів:

git reset HEAD <filename>...

Однак ви не можете важко скинути файл. Але ви можете відновити зміни після оформлення замовлення:

git checkout -- <filename>...

Ви будете зберігатися, як наголосив Лука у відповіді Майкла Мілома.

Це корисно, коли ви не хочете втрачати свої незаангажовані локальні зміни.


0

Якщо ви ніколи не хочете знову побачити роботу у вискочившій скрипті, це так просто, як жорсткий скидання:

git reset --hard HEAD

Це вказує git ігнорувати той факт, що ви змінили зміни у своєму робочому каталозі, а також встановлює робочий каталог, область постановки та перейдіть до вказаного вами зобов’язання - у цьому випадку існуючий HEAD, який містить всю роботу, яку ви я просто скоєний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.