
Merge versus RebaseĪ Git-specific alternative to merging is rebasing (see Rebase), which can be used to keep the history linear.

Thus, to perform a squash merge you have to choose Merge to Working Tree when initiating the merge, since otherwise you won't see the Commit dialog. On the Commit dialog, you can choose between a normal merge (merge commit) and a squash merge (simple commit). The squash merge is useful for merging changes from local (feature) branches where you don't want all of your feature branch commits to be pushed into the remote repository. Hence it only allows you to create normal commits.

The squash merge works like a normal merge, except that it discards the information about where the changes came from.
REBASE HEAD TO SMARTGIT HOW TO
See Resolving Conflicts for further information on how to deal with merge conflicts. If there are merge conflicts, or if you choose Merge to Working Tree, SmartGit will perform the merge, but leave the working tree in a merging state, so that you can manually resolve merge conflicts and review the changes to be made. If you choose Create Merge-Commit, SmartGit will perform the merge and create a merge commit, assuming there are no merge conflicts. Regardless of where you invoked the Merge command, you will be given the choice between Create Merge-Commit and Merge to Working Tree, and optionally also Fast-Forward if a fast-forward merge is possible. Log Graph On the Log graph of the Log window, you can perform a merge by right-clicking on the head commit of the branch to be merged with and selecting Merge from the context-menu.Branches view In the Branches view (available both on the main window and the Log window), you can right-click on a branch and select Merge to merge the selected branch into the current branch.Depending on your toolbar settings, you can also open this dialog via the Merge button on the toolbar.

Menu and toolbar On the main window, select Branch |Merge to open the Merge dialog, where you can select the branch to be merged into the current branch.In SmartGit, there are several places from which you can initiate a merge:
