On Fri, Nov 30, 2018 at 1:16 AM Dan Fabulich <d...@fabulich.com> wrote: > > Other thoughts on a global UI rethink: > > One of the most common complaints I hear about git is the conceptual > difficulty required in undoing changes. https://ohshitgit.com/ > > > Git is hard: screwing up is easy, and figuring out how to fix your mistakes > > is fucking impossible. Git documentation has this chicken and egg problem > > where you can't search for how to get yourself out of a mess, unless you > > *already know the name of the thing you need to know about* in order to fix > > your problem. > > A significant fraction of the top-voted questions on StackOverflow are about > undoing changes. https://stackoverflow.com/questions/tagged/git > > What if there were a 'git undo' command that could unify the answers to all > of these questions? > > git undo stage > git undo rm > git undo edit (checkout files from the stage) > > git undo commit (prompt the user whether to revert or reset) > git undo reset > git undo checkout > > git undo merge > git undo pull > git undo push (prompt the user whether to force push back to the past or > whether to revert pushed commits) > git undo rebase > > git undo undo > > git undo clean > git undo delete-branch > git undo delete-stash > > Some of these would be trivial effort, but a lot of them would require > fundamental changes in the way git operates. (You can't undo a clean right > now because the files are just destroyed.)
We're getting there. The biggest problem I have is how this "git undo" should work, not the changes behind to support it. For example, if I pulled then did some rebase, what would "git undo pull" do? -- Duy