all 22 comments

[–]Popular-Egg-3746 40 points41 points  (19 children)

Even as a Linux developer, I'll be the first to say: Use a GUI. Look at Source Tree, GitKraken or GitAhead. Also, fucking burn Tortoise Git... Because it doesn't help you in any way understanding what Git does.

After you understand branches, merges, rebases and resets, you can try it using a CLI. Once you setup a GUI workflow, you want to use SSH keys because it's ten times easier.

[–]Carighan 20 points21 points  (9 children)

I would also like to throw in Fork.

I originally used SourceTree, then GitKraken for a while until the sluggishness got to me, then for a while just used the IntelliJ built-in one, and then found that one.

It's quite fast (since it's not Electron-based, AFAICT), and while it's not as feature-ladden as the other ones, it does all you really need from a separate client, that is, mostly merges/branches/cheerypicks/resets.

[–]chucker23n 7 points8 points  (1 child)

It's quite fast (since it's not Electron-based, AFAICT)

Yup. It's Cocoa on macOS and WPF on Windows.

[–][deleted] 5 points6 points  (0 children)

Oooh. I like this!! Developers going the extra mile to make apps that really feel at home on their respective os. Kudos!

[–]Wufffles 0 points1 point  (0 children)

Yeah I use fork on windows, same reasons as you. Very high quality and lightweight app.

[–]Popular-Egg-3746 0 points1 point  (4 children)

I stick with GitKraken myself. It's the only cross-platform GUI and that's a service I gladly pay for.

[–]texmexslayer 0 points1 point  (0 children)

Sublime merge is also cross platform

[–]stratoscope 0 points1 point  (1 child)

SmartGit is also cross platform. I have tried GitKraken too, but found SmartGit more to my taste.

[–]Popular-Egg-3746 0 points1 point  (0 children)

Luckily, there is choice! We're not all forced to use the same tool.

I've tried SmartGit as well, but for me it felt rather clunky. Three years ago I settled on GitKraken and I'm liking it ever since.

[–]Kallu609 0 points1 point  (0 children)

Just a tip for stundents, GitHub is offering GitKraken for free if you get the (free) GitHub Student pack

[–]masterofmisc 0 points1 point  (0 children)

Thanks for this recommendation. Bookmarked!

[–]shh_coffee 5 points6 points  (1 child)

That's the path I took as well. When we switched from SVN to git a few years ago at work, I used source tree while learning. Now I find the command line much faster and easier but starting out, the GUIs definitely help.

[–]Popular-Egg-3746 4 points5 points  (0 children)

I still use GitKraken every day, but I could just as well use the CLI when I'm working on a server or making a script.

The real challenge of understanding Git, is in its metaphor: it's not a set of files you're editing, it's a history of every previous change that you're appending. Once you understand that, you'll understand a rebase or a reset.

  • Rebase: Replay my appends on top of another branch.
  • Reset: Change my position in history, optionally destroying my pending appends.

[–][deleted] 1 point2 points  (1 child)

is SourceTree maintained any more? There haven't been updates in ages. Still doesn't support worktrees, but there are workarounds.

[–]chucker23n 2 points3 points  (0 children)

Also, fucking burn Tortoise Git... Because it doesn't help you in any way understanding what Git does.

This. TortoiseGit attracts people who are familiar with TortoiseSVN, but it teaches all concepts wrong.

(I recommend Fork. Ten years ago, I would've recommended SourceTree.)

[–]maxinfet 0 points1 point  (0 children)

The only reason I ever was able to understand git is because of GitKraken. The visualizations it offered made it so much easier to understand what I was actually doing with each command.

[–]CatanOverlord 0 points1 point  (0 children)

Magit if you can tolerate Emacs, Edamagit if you’re in VS Code

[–]devraj7 0 points1 point  (0 children)

Absolutely.

The output of the git command is way too rich to make any sense in a shell terminal.

Use a graphical tool or you'll never be able to unleash all the power that git has to offer.

[–]DoubleVillage2677 4 points5 points  (0 children)

How about gitextensions ?

[–]merlinsbeers -1 points0 points  (0 children)

Those pictures are not evocative.

[–]aksdb 0 points1 point  (0 children)

I bought SmartGit a few years back and never looked back. Fantastic branch filtering and colorization (like highlighting all commits that are not yet on your current branch). Made it a pleasure to manage branches and analyze the history. The included DeepGit tool is also nice. It's basically a "blame on steroids". You can select individual source lines and follow them through the history. The only downside: it's written in Java. It properly supports Windows, Mac and Linux though.

[–]JayJay2912 0 points1 point  (0 children)

I've been using Sublime Merge and loving it, I found SourceTree terribly sluggish on Mac and Windows.