

(Sourcetree gets slower the more repo tabs that are open. Sublime Merge remembers the last dozen or so repos you opened. Instantly switch to another repo using Shift+ Ctrl+ O. (Sourcetree opens repos as tabs inside a single window, so you can’t do a side-by-side of two repos)
#SOURCETREE SQUASH WINDOWS#
Its possible to open multiple windows if that’s what you need.
#SOURCETREE SQUASH FULL#
The full path to the repo is shown in the Window title. Labels are poorly written too, which makes it scary for learners) (Sourcetree hides most of the git internals, so you need to experiment. Tool tips on some buttons show what git commands will be executed when you press them (this helps you learn git).

(The workflow in Sourcetree is vague and unintuitive) The work flow for resolving merge conflicts is very streamlined: (In Sourcetree there are many clicks and confusing options, and its so slow performing the clone) The rebase commands to abort or continue are hidden 2 deep in a menu.)Ĭloning a repo is wonderfully simple - you can do it in two clicks: (Sourcetree doesn’t have clear indicators that a rebase is in progress. You can refer to the last git command, and there are buttons to Abort rebase or Continue rebase. The GUI has clear indicators to show when you are currently rebasing. (The Interactive rebase interface in Sourcetree is vague and unintuitive) Simply select one or more commits, then use the context menu to squash, reorder, drop, amend commit message, etc. Interactive rebase commands are performed individually, and this works out to be very intuitive from a GUI. (Sourcetree can do this, but its unreliable and usually doesn’t give the correct result) The entire interface is consistent and elegant.Ĭtrl+ Click any two commits to see a diff of them. Please also head over to their website and read the feature highlights. Sublime Merge is a great tool and its features helped me learn git and made my workflow faster.īelow I’ve explained each awesome feature, followed by a comparison with SourceTree. After switching to Sublime Merge my knowledge of git exploded and it has been a great discovery process. I have used Sourcetree for over a year and during that time I was still learning git. Sometimes when you click on a branch it doesn’t jump to it in the graph view. Regularly prompts for authentication for each repo separately (very frustrating). Regularly complains about corrupt dictionaries and asks if I want to delete them. Regularly crashes and needs to be reinstalled (or requires a reboot), usually just after updating Microsoft Office. Note: my experience is with the Windows versions of Sublime Merge and Sourcetree. I hope my comments help to further improve both tools. The main point of this article is to point out the amazing features in Sublime Merge, and to illustrate why you should avoid using Sourcetree. We finished some feature branch work that we want to merge into master.Sublime Merge vs SourceTree (Git client comparison) * What if you want to squash and include the first commit? use git rebase -i -root. git push origin branch-name -force (note that you can use -f instead of -force.) Important: If you’ve already pushed commits to origin, and then squash them locally, you will have to force the push to your branch.What you see is a single message containing all of the commit messages. It will give you the opportunity to change the commit message.This will squash each commit into the previous commit, which will continue until every commit is squashed into the first commit. Make sure the topmost, first commit says “pick” and change the rest below from “pick” to “squash”.You should see a list of commits, each commit starting with the word “pick”.Run git rebase -i (where is the commit after the last one you want to squash.Run git rebase -i HEAD~4 (with 4 being the number of commits).Run git log to determine how many commits to squash.To squash multiple commits into one in the branch you’re on, do the following: Example: “Fix documentation spelling mistake” Many commits are small and unimportant in the grand scheme to keep as standalone commits.A clean history makes tracking changes to a large codebase across time much easier.Why should one consider squashing commits? It allows you to take changes that are spread amongst multiple commits and consolidate them into one.
#SOURCETREE SQUASH HOW TO#
This article outlines how to use the “squash” feature of an interactive git rebase. How to Squash All Commits Related to a Single Issue into a Single Commit
