Most merges happen automagically (fast forward). Rarely you will have a merge conflict, but if you do, it can be frustrating to understand merge tools. I know you have tortoise git installed so you also have tortoise merge. Tortoise merge basically shows the changes to what is in the remote repo and what is in your local repo. Essentially you just have to tell it what you want to keep, and order it properly. It takes some practice, but it is easy.
What fast forward is basically doing, is taking your changes in stride, and literally applying each commit in sequence (of course this happens VERY quickly). Because of this method, merge conflicts are pretty rare.
If you're talking about merging branches, that's simple. Just switch over to the master branch, and do
git merge <branchname that you want to merge into master>
It is different form svn in that git stores EVERYTHING in a single .git folder in the root of your local repo. Here are the changes for every branch. SVN plasters .svn in every single folder of the project, which can make for nightmarish conditions if your repo gets messed up.
It is important to understand that git is very little like svn. You can't transplant terms, because they generally don't mean the same thing in git as they do in svn.
Anyway, so lets say I have branch master, and I get a call that something is severely fucked.
Ok, well I don't want to contaminate my master branch with potential crapola, so I make a new branch for the hotfix
git checkout -b hotfix (the -b tells git to make a new branch... don't worry about having tons of branches, it's messy but it won't hurt anything and you can delete them easy as pie)
Ok, you will notice in your term window, it will have the branch name that you are using in parenthesis
You can hot switch branches instantly using git checkout <branchname> so you can hop back and forth to your hearts content which allows you to test a shitload of branches all at the same time.
So anyway, we have our new file edited, and we want to commit it and test it on the hotfix branch
git commit -am "Testing my new hotfix"
Now we do the testing.
Testing is excellent now we want to merge hotfix into master
git checkout master
git merge hotfix
Bam, you're done, all that is left is to push it to the remote repo
git push origin master
In reality, it's about a 5 to 10 second process. It takes far longer to explain it on paper than it does to actually do it
is an amazing and easy to understand encyclopedia of all things git. I have never hit a situation that I could not handle in git. I cannot tell you how many times I've had to wipe out a repo in svn just to fix stupid stuff.
A sidenote, in git you should usually NEVER need to rebase. Also, look up git stash. Git stash is one of the most useful tools ever.
As I said in the chat, I have a SUPER easy git setup for windows. It's FAR easier than the tortoisegit setup you are using now, and you will spend much less time and frustration fighting git. Git simply isn't meant to be used via a gui, and it's function simply doesn't work well when put into a gui.
Tortoisegit and tools like it are far more complicated than the 6 simple git command lines you'll need to remember.
Pretty much the only commands you'll probably ever need to use in git:
git commit (-am)
git stash (you don't have to know this one, but it's freaking awesome)
Those are probably the only commands you'll ever need to use in git, and any time you need a command that isn't on that list, google it, because chances are you'll need that other command once in a blue moon.
Hope all this helps. Git really is simple. The problem is that when you come from svn, it makes the learning curve 5x as bad. Svn is a bad tool and it teaches awful development habits (this is something you never really fully appreciate until you are familiar with git).