Git stash sembra fare molto di ciò che voglio, tranne per il fatto che è un po 'difficile da scrivere, dato che se non hai cambiamenti, allora git stash; git stash pop
farà qualcosa di diverso rispetto a se hai cambiamenti nel tuo repository.
Sembra che git stash create
sia la risposta a quel problema, e tutto funziona, tranne una cosa ... Non riesco a liberarmi della scorta creata. C'è un modo per sbarazzarsi della scorta?
Per chiarire al 100% cosa sto facendo:
Crea lo stash:
~/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
Usa lo stash:
~/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
#
Elimina lo stash: (tranne per il fatto che quest'ultimo bit non funziona)
~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
git stash apply
ha funzionato. I git apply
tentativi di leggere un file patch locale, che non esiste. Ad essere onesti, probabilmente non dovrebbe essere lì e non avrebbe mai potuto funzionare. Sono vagamente tentato di rimuoverlo dalla domanda, ma dato che ha aiutato così tanti nella sua forma attuale, lo lascerò così com'è.
git apply
corsa nella seconda casella di codice al momento della stesura di questo articolo non ha applicato una patch: il messaggio di errore nell'output ti ha detto questo. Quindi, in effetti, hai provato a creare uno stash (che non ha funzionato, vedi commenti sotto) applicare uno stash che non è stato creato, quindi rilasciare uno stash che non è stato creato. Questo è il motivo per cui nulla ha funzionato.