4 ms·
I use git daily and it works, but man did it take a long time until I got confident enough to not make a backup.tar.gz before some more complex operation. And I
by bornfreddy 4y ago
I use git daily and it works, but man did it take a long time until I got confident enough to not make a backup.tar.gz before some more complex operation. And I still hate the fact that there are N additional obscure ways to do each operation.
Mercurial otoh was a joy to use, never surprised me - it just worked. I think github is the only reason git won. Ah well, water under the bridge...
P.S.: hginit rules.
- jjav 4y agoAgreed, mercurial is a joy to use. It's very annoying that git became more popular, it's such a disaster from the usability point of view.
- waynesonfire 4y agoHave zero problems with it, have you tried to RTFM?
- mixmastamyk 4y agoYes, I read the manual every time I need to do anything but push and pull. Because I have to. ;-)
- arinlen 4y ago> Yes, I read the manual every time I need to do anything but push and pull. Because I have to. ;-) Can you provide a single example of what you think is the absolute worst userflow that git provides for a basic everyday feature? I'd like to understand why some people repeatedly make a mountain out of a molehill regarding git's user experience.
- mixmastamyk 4y agoIt's no molehill, and they are well known. Just go to stack overflow and see git questions with ~20,000 votes each! Not just that but note how many answers there are for each one, how much story-telling is involved, and how advice changed over the years: https://stackoverflow.com/questions/tagged/git?tab=Votes https://stackoverflow.com/questions/tagged/git?tab=Votes This is not the mark of good interface design. The ones I look up every single time off the top of my head are: # undo commit git reset --soft HEAD~1 # unstage # was git reset HEAD -- git restore --staged I created aliases for most of the common ones, like deleting old branches: # https://stackoverflow.com/questions/2003505 nuke = "!f() { git branch -D $1 && git push --delete origin $1; };f" Others like checkout/switch have been fixed, but I still use my aliases from ten years ago so haven't really updated. A few times I tried the rebase workflow geeks are always pushing. They are never around when disaster strikes, so I don't bother any more. At least merge+squash works every time. Notice that commands like git status tell you what commands to run to fix issues; the typical user would never guess. Hg wasn't perfect but it had a lot fewer of these issues.
- arinlen 4y ago> It's very annoying that git became more popular, it's such a disaster from the usability point of view. I don't understand this sort of comment at all. What's so hard about git? You clone a repository, you checkout a branch, you pull changes to that branch from the remote server, you commit a change to your local repository, you push those changes to a remote server. What's so hard to get? It's even more absurd when people try to claim that mercurial is so clear while criticising git for being unintelligible, when mercurial follows the exact same patterns but had to confuse people by leaving basic features like stashing as an afterthought to be implemented with ad-hoc extensions.
- adammarples 4y agoBecause of the other 8 million things you can do with git, especially when things go wrong and you're trying to undo them and the commands are very cryptic.
- jefozabuss 4y agoI still save changes to a file if I switch/merge while having a bigger changeset as I use PHPStorm and it caused me a semi heart attack at least 3 times with the “unstashing failed“ error (that also removed it from the stash at the same time)
- Cederfjard 4y agoIf a change has ever been committed or stashed (which is basically also committing, just not on a branch), it can always be recovered, at least until garbage collection is run - check out the reflog. Of course, if it hasn't been, then you can lose it.
- nicoburns 4y agoYeah, working out which stash contains your work can be quite tricky though! As they are not named by default.
- vbernat 4y agoYou can add a tag to the change you want to keep. Whatever you do, you can recover it (git reset --hard tag). Once you are done, remove the tag. Otherwise, there is the reflog, like mentioned in a sister comment.
- rubyist5eva 4y agostandard branches can serve this purpose
- rr888 4y agoThe best thing about Jetbrains IDEs is local file history - so you dont have to rely on git - you can still see file history and directory history to restore commits and deleted files. Saved me many times.
- felixthehat 4y agoVS Code added that feature too recently, very nice addition https://code.visualstudio.com/updates/v1_44#_timeline-view https://code.visualstudio.com/updates/v1_44#_timeline-view
- mikro2nd 4y agoSourcehut (sr.ht) has Mercurial support in their forge (in addition to Git). Was one of the main reasons for me moving projects over there in the first place, but I really enjoy the simplicity of the UI and general minimalist approach. I don't know whether it does CI/CD pipelines or anything, since I've little call for any of that, so ymmv.
- mananaysiempre 4y agoIt does do CI/CD, for what it’s worth[1,2] [1] https://builds.sr.ht/~sircmpwn/builds.sr.ht https://builds.sr.ht/~sircmpwn/builds.sr.ht [2] https://man.sr.ht/builds.sr.ht/ https://man.sr.ht/builds.sr.ht/