-
all repos start with a blank initial commit, no more "does not have any commits yet" errors
-
git commit foo
should just work for new files, no more making people rungit add
first lol -
no fucking perl scripts lmfao
- better perf
- git on windows is less horrifically cursed
-
all the defaults should be different
- autostash
- diff3
- manyfiles
- color-moved
-
add an "undo" command that works for arbitrary git commands
- e.g. delete a pushed branch, undo a merge, undo a commit/amend/rebase
-
paths fall back to the repo root if they can't be resolved relative to CWD
-
submodules and subtrees are the same thing
- not checking out submodules is off by default (configurable on per-repo basis)
- this replaces git LFS too
- commands in the submodule work from anywhere in the repo
- changes don't have to be upstreamed before being committed
- worktrees don't reclone the same repos
- don't have to fetch the full history of the submodule
- no "dirty submodules" lmao what a fucking terrible idea
- not checking out submodules is off by default (configurable on per-repo basis)
-
don't use merge workflows so I don't have strong opinions there but merge commits should show the changes you made when resolving conflicts (!!)
-
give a warning before committing merge markers
-
add a way to get back the original
git diff
at the start of a conflict that doesn't completely disappear as soon as you rungit add/commit/reset
lmao -
rebasing needs to completely be redesigned
- don't touch things on disk unless absolutely necessary to solve merge conflicts or do a final checkout
- don't reverse "your changes" and "upstream changes" in conflict markers lmfao
- don't make
--interactive
a completely separate backend lmfao--edit-todo
and--autosquash
should work even in non-interactive mode
- keep a record of the changes made instead of silently discarding them
- this is mostly just range-diff see the section below
- branches should remember which commit they branched from
- file renames should remember the original file. no more percentages lmao what a concept
- use
merge-base origin/HEAD HEAD
as the default root
-
allow editing individual commits without needing to do a full interactive rebase
- yes this includes metadata
- no more "fixup" lmfao just edit the actual commit
-
absolute URLs work anywhere without needing to add a remote first
-
remotes are automatically deduplicated
- adding an existing URL just adds an alias
- adding a new url that points to the same repo (e.g. HTTP vs SSH) checks somehow if they're the same and uses the same local cache if so
-
add a version of
stash
that appends to a branch instead of a random number (https://discord.com/channels/414933673545039883/712061415686406144/980885457980231700) -
better names
- aliases for all the old names
-
better error messages and help
Last active
April 27, 2023 04:28
-
-
Save jyn514/e120a7b7e4fdea3fd0e8f12c7811b383 to your computer and use it in GitHub Desktop.
vague scribbles about how to make git easier to use
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment