I\'m relatively new to Git, but I want to give it a try (vs SVN and Bazaar).
Can anyone recommend me a workflow for a situation similar to the following:
Let us first consider the simpler case of one remote repo and one local repo.
A remote in the local repo works "only" as a reference to the other repo. You can use fetch to retrieve the remote objects to your local store:
git remote add upstream git://...
git fetch upstream
Now all branches from upstream can be locally referenced and worked on by using upstream/branchname. To really work on a remote branch, you should always make a local branch which tracks the remote branch:
git checkout -b new_local_branchname upstream/branchname
Now you can work locally and commit/merge as much as you like. As a final step you can push you changes back into the central repository. The imporant bit is that AFAIK push can only do fast-forward merges, that is upload the changes and set the new head. Therefore you have to prepare your local branch so that the local changes start on the tip of the remote branch. You can use rebase to achieve that or avoid changing the central repository while you are working locally.
This describes the simple workflow between two repositories. Now to the specific case with SVN.
git svn complicates the picture by further constraining the kind of changes you can do. As with remotes, you should never directly modify the svn branches but always work on a local branch. Unlike remotes, git svn always modifies commits as they go into the SVN repo to add the neccessary metadata. This last fact is probably the reason for many of your problems as commits on the SVN branch will always have different hashes from the original commits on your local branches.
Finally, your question about multiple projects in the same repo.
Git doesn't support parallel checkouts of multiple branches in the same repo. You might want to look into submodules to integrate multiple repos.