4 ms·
git reset —hard HEAD~1 It is already part of the CLI API. Or it could use the ref log (possibly augmented) as a literal undo log, and follow that. > That wou
by masklinn 3y ago
git reset —hard HEAD~1
It is already part of the CLI API.
Or it could use the ref log (possibly augmented) as a literal undo log, and follow that.
> That would break a lot of the guarantees gained from the append only graph that git exploits for nearly everything it does.
The graph is really not append-only.
- wtallis 3y ago> The graph is really not append-only. The commit graph is effectively append-only, but the named pointers into that graph can be reassigned at will, which means some commits can become (more or less) unreachable and eligible for garbage collection.
- masklinn 3y ago> The commit graph is effectively append-only, but […] some commits can become (more or less) unreachable and eligible for garbage collection. Sound to me like the commit graph is not append-only.
- maleldil 3y ago> The graph is really not append-only. Yes, it is. You can't change a commit: you have to create a new one, and create copies of any child commits, which are also different commits. This generates a different graph. What changes are things like tags, branches and HEAD, but they're just pointers, not part of the graph itself.
- masklinn 3y agoMate go @ the GP they’re the ones who asserted a git undo would break assumptions. > Yes, it is. You can't change a commit You can remove commits from the graph. That’s not append only in my book.