For historic reason we have source code for different version in different git repositories. So while Project A holds the version X of the source Project B holds version Y of th
I am not sure, what you mean by "git project". In git the states of source code are described by commits (a.k.a. revisions). These are stored in repositories, but are independent of the them and can be copied between repositories freely. In fact, to work on the sources git always copies the commits to your local repository that lives in the .git
directory of your working copy. Branches are just names pointing to commits.
So if you have some branches in one repository and other branches in another repository, you can:
Pull both into your local working repository:
git remote add B git://url.to/project.B.git
git fetch B
Base your work on branches from B
git checkout -b newname remotes/B/branchname
Push the branches you got from one central repository to the other:
git push origin remotes/B/branchname:branchname
or the other way around
git push B remotes/origin/master:othername
You can omit the remotes/
prefix most of the time.