Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I liked the way I learned git. I started with sourcetree, a third party git gui. Super simple to use and understand. Then I moved to git gui, this step could be skipped. Then I got tired of pulling up my UIs and learned the terminal commands. Highly suggest this for anyone new, but just my (n=1) experience.


All I know of git is clone, pull, commit, and push. That’s all I’ve ever needed. Git can be that simple. Of course it supports more complex uses, which you can learn if you need them.


Life is simple until we play with time, once you start altering the past everything falls apart


This... seems a bit deeper than a comment about just Git.


It's not possible to alter commits with git. They are immutable. You can only make new commits that are based on existing ones in some way. The distinction is important, because the original commit (such as a commit pre-rebase) still exists after it's been "changed".


> The distinction is important, because the original commit (such as a commit pre-rebase) still exists after it's been "changed".

The original commit will only exist for as long as git deigns not to garbage collect it.


The use case for more is managing the history of it in a specific way to make it easier to understand. Most applications don't need this level of management since most applications don't have lives depending on them


I'd add Stash, unless I'm working alone


Yeah even that has caused me trouble. I usually just copy the problem file to another directory, checkout the file from the repo, pull, and then diff/merge my changes. It may sound like more work, and maybe it is, but I understand what's happening and it's rare enough for me that to do it "the git way" I'd have to look it up every time.


And that's the only reasonable subset of git there is - I agree. Branches and cherry picks aren't worth the insurmountable headaches they come with


>Then I got tired of pulling up my UIs and learned the terminal commands

I'd never revert to terminal commands. Git is basically begging to be interfaced with through a GUI given how much sense it makes to visualize a git repo and its workflows. The moment I started using Magit git started to make sense for me.


lazygit is a godsend, personally. `git add`ing individual files is a PITA.


Btw I moved from Sourcetree to Fork. It’s very similar but way more performant and smooth UI (unless ST has improved in last few years)


I like GitKraken, except for the fact that it lacks the ability to show first parent only, i.e. `git log --first-parent`. That feature is available in Visual Studio and Visual Studio Code (Git Graph extension), but I don't like these as much as GitKraken, so I end up switching between command line, GitKraken and VS/Code. It's a bit of a mess. Does Fork support `--first-parent`? It's especially hand in merge-heavy workflows with very noodly graphs that you want to simplify.


Not only does Fork support --first-parent, but it even lets you expand/collapse any merge commit just by clicking the node in the graph! Agreed it's the best way to make sense of a merge-heavy history.

I highly recommend Fork.


I love Fork, one of my favorite macOS apps. I wish I could get it on my iPad as well.


Thank you! Had never heard of this. Ill give it a try!


I had kind of the same path but with GitKraken and Sublime Merge but I kept Sublime Merge around as it ease complex interactions too.

I have only praise for Sublime Merge.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: