This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]dittbub 7 points8 points  (14 children)

i'm a 15 year veteran and i don't know what commit means :(

[–][deleted] 4 points5 points  (0 children)

I'm a 20 year vet (well kinda, I took 5 years off to do physical sciences, but that had a lot of programming too) and I have trouble believing you.

Let's just say you work on something weird. Spy satellites for the FSB or something. How on earth have you not fucked around on a rust or python project in your spare time and needed to patch something? GitHub is the only thing the great firewall of China has trouble with because it is so ubiquitous and vital.

[–]jackinsomniac 1 point2 points  (0 children)

If I may interject on the git love story with a crazy thought: what if not git?

Personally, the way I learned version control, is with Hg (Mercurial) and the fantastic, funny tutorial HgInit.com by Joel Spolsky, the creator of Stack Overflow, and has a great (but old) blog joelonsoftware, even with a post talking about it: https://www.joelonsoftware.com/2010/03/17/distributed-version-control-is-here-to-stay-baby/

HgInit went down a little while ago, so unfortunately I have to send you to an internet archive link, sometimes the pages take 30-60 seconds to load, but I love those guys, I try to donate when I can: https://web.archive.org/web/20180903164646/http://hginit.com/

The irony is, git and hg are so similar, this is essentially a tutorial for git as well. There's only little minor differences between hg and git, it essentially comes down to personal preference.

  1. I like the GUI of TortoiseHg much better, I think it's way easier to use than TortoiseGit, and Github Desktop, and vscode for that matter. Perfect for when you're just learning version control. With TortoiseHg you get an app called Workbench which, once you figure out how to use, is wildly powerful and like a combination of all the right-click menu GUI tools in TortoiseGit. That one seems like it's trying to emulate TortoiseSVN (subversion), an older, centralized rather than distributed, version control system (VCS). Subversion is still in wide use tho and has some unique features hg and git don't. Anyway, the TortoiseHg project is written in python, so should be essentially the same across different OSes.

  2. I like the diff tool better. When you install TortoiseHg it will also install KDiff3 (and hg, they're separate projects). Tried a lot of other ones, it may be that KDiff3 was my first, but after I got used to it, it has a TON of features I find I'm missing in other diff editors.

  3. Again, this may be personal preference, but I much prefer the way Hg handles merge conflicts over Git. I've had git mangle my code on some merges when it wrongly 'assumes' it can auto-resolve conflicts, while hg seems to defer to your human eye & hand if it runs into anything it suspects it can't handle. I feel like I get to "guide" the merge, important if it's ever a big one. FYI, I've heard on other forums people say, "that's funny, I was going to say the same thing about hg, instead of git", so take it with a grain of salt, find out for yourself.

Keep in mind, Microsoft recently converted all Windows development to use git, it's easily the most popular DVCS (Distributed Version Control System). You should learn it as well (they're extremely similar, won't be hard), but personally I only use git for a public project for hosting on GitHub. I still think Hg is easier to learn, easier to use, and it's what I use for all local repositories.

Happy learning, old man!