Схоже, що Git Stash робить багато чого, що я хочу, за винятком того, що сценарій трохи важкий, оскільки якщо у вас немає змін, то git stash; git stash pop
ви зробите щось інше, ніж якщо у вас у сховищі є зміни.
Здається, git stash create
це відповідь на цю проблему, і все працює, за винятком однієї речі ... Я не можу позбутися створеного сховища. Чи є спосіб позбутися від приховування?
Щоб було на 100% зрозуміло, що я роблю:
Створіть скриньку:
~/tmp/a(master) $ git stash create
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message
Використовуйте скриньку:
~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
Видаліть скриньку: (за винятком того, що цей останній біт не працює)
~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
git stash apply
він працював. В git apply
спроби прочитати локальний файл патч, який не існує. Якщо чесно, це, мабуть, просто не повинно бути там, і це ніколи не могло працювати. Я невимушено намагаюся зняти це з питання, але враховуючи, що він так багато допоміг у своєму теперішньому вигляді, я залишу його як є.
git apply
під час написання цього запису у другому полі коду не застосовано патч - це повідомлення про помилку у висновку. Тож насправді ви спробували створити приховану скриньку (яка не спрацювала, див. Коментарі нижче), застосувавши приховану скриньку, яка не була створена, а потім скиньте копію, яку не створили. Ось чому нічого ви не працювали.