Git stash, похоже, делает много чего я хочу, за исключением того, что это немного сложно для script, так как если у вас нет изменений, то git stash; git stash pop
будет делать что-то другое, чем если бы вы изменения в вашем репозитории.
Похоже, что git stash create
является ответом на эту проблему, и все работает, за исключением одной вещи... Я не могу избавиться от созданного stash. Есть ли способ избавиться от кошелька?
Чтобы сделать это на 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