I rarely use a Git UI. I mostly use within my text editor or in terminal. However when I do, I use gitkraken. I actually used source tree for a long time but ever since I moved to Linux this is my number one choice. Anyhow, this week I got a newsletter from the guys a gitkraken talking about LFS and I decided to show you guys what it's used for.
This is a git tool that gives more friendly way to navigate your git logs, commit or even diff files. Personally I use git most times inside Sublime Text 3. However its always nice to have a tool like this at hand.
I'm a heavy git user, hence I'm always trying to improve my workflow while using it. I normally have 3 ways of using git. I could use a gui client (sourcetree), normally I do this when I'm preparing a new release.
On my daily code day I would use git inside Sublime Text 2. That way I don't need to constantly change between my text editor of choice and a git gui or the terminal. However, from time to time, I use just the terminal. That happens for two reasons, one I could be using git remotely, or I could be doing something more difficult that couldn't be resolved inside sourcetree or Sublime Text.
I'm sure this happened to you before, more than one time actually. You have a big file, you changed lots of stuff in it, but those changes are not really related. One may be related to one class and the other to something completely different. Normally you should avoid that, your commits should always be specific to one task, feature or bug. If you do a small search about how to commit better you'll see that even the commit messages should have this notion.
When I started using Git I wasn't doing any version control. I was just working on my projects and I just didn't see any use to it. I wasn't seeing the long run. Everything seemed like too much work â€” Branching, staging, stashing, committing â€” I was confused. But then Git was kind forced on me, since I wanted to contribute to open source projects and almost all of them were (and still are thankfully) using Git I had to learn how to use it. This is what I learned from that process.