From: Philip Oakley Date: Sun, 16 Mar 2014 21:22:42 GMT Subject: Should 'git reset --hard' keep a stashed backup? Message-ID: A bike-shedding thought: Many inexperienced users do a 'git reset --hard' only to discover they have deleted something important and want it back. (e.g. git-users yesterday [1]) One possible option is that Git could "stash" the current work-tree contents (git stash create) into a commit and store its commit_id in a suitable file/variable such as RESET_HARD_HEAD (or GIT_RESET_HARD_HEAD), similar to FETCH_HEAD & MERGE_HEAD, so that it would be relatively easy to recover the prior state. By only storing the id in the file/env it would be overwritten on each usage, and the loose commits would be garbage collected eventually. A suitable config variable would allow it to be enabled/disabled as appropriate to the user. (Perhaps enabled by default eventually?) Given the prevalence of 'git reset --hard' within internet forum advice, would something like this be useful? It could even be wrapped into a GSoC project. -- Philip [1] https://groups.google.com/forum/#!topic/git-users/CwQyfwnzCVM