Merge conflicts are perhaps the worst part about using Git, so it should be much easier to work with them (and avoid dealing with them!).That way, I don’t have to start the merge/rebase operation in order to see if it will succeed or whether it will be hard to resolve conflicts.preview: Before carrying out a merge or rebase, it should be possible to preview the result, including any conflicts that would arise.Not accepting git rebase -i solutions, as it’s very confusing to examine the state of the repository during a rebase.Splitting a commit is guaranteed to not cause a merge conflict, so requiring that the commit be checked out is unnecessary.split: There should be a specific command to split a commit into two or more commits, including commits which aren’t currently checked out.I do this all the time! Practically the first thing every morning when coming into work.sync: It should be possible to sync all of my branches (or some subset) via merge or rebase, in a single operation.It should also be possible to reword a commit which is the ancestor of multiple branches without abandoning some of those branches, but let’s not get our hopes up….Rewording a commit is guaranteed to not cause a merge conflict, so requiring that the commit be checked out is unnecessary.reword: It should be possible to update the commit message of a commit which isn’t currently checked out.I do not care to argue about which workflows are best or should be supported. Many of my readers won’t care for these workflows, but it’s not just about the workflows themselves it’s about the resolve to improve workflows by not using the faulty set of primitives offered by Git. I thought about some of the workflows I carry out frequently, and examined several Git clients (some of which are GUIs and some of which are TUIs) to see how well they supported these workflows. No one bothers to consider: what are the workflows that people actually want to do? What are the features that would make those workflows easier? So instead we get clients which think that git rebase -i as the best possible way to reword a commit message, or edit an old commit, or split a commit, or even worth exposing in the UI. Since its inception, a thousand people have tried to make new clients for Git to improve usability.īut practically everyone has focused on providing a pretty facade to do more or less the same operations as Git on the command-line - as if Git’s command-line interface were already the pinnacle of usability. The Git version control system has been causing us misery for 15+ years.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |