The necessary syntax and configuration files are all documented fairly detailed in the manual pages, but it is a tad hard to know where to look:
http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html
http://www.kernel.org/pub/software/scm/git/docs/git-push.html
http://www.kernel.org/pub/software/scm/git/docs/git-config.htmlIf you use recent enough git (post 1.5.0), the recommended way to keep two boxes in sync is:
On mothership box, in .git/config:
[remote "origin"]
url = satellite:.git/
fetch = +refs/heads/*:refs/remotes/origin/*
push = refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/masterOn satellite laptop, in .git/config:
[remote "origin"]
url = mothership:.git/
fetch = +refs/heads/*:refs/remotes/origin/*
push = refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/masterThen, whenever you start working on the satellite:
$ git pull
which, while you are on "master" branch, would use 'origin' as the default remote (thanks to branch.master.remote configuration), store the copy of mothership's branches in refs/remotes/origin/, and merges the "master" branch obtained from the mothership to your "master" branch on the satellite [*1*].
When you are done working on the satellite:
$ git push
will push to "origin" by default, which would push all your branches (thanks to remote.origin.push configuration) to mothership's refs/remotes/origin/.
When you go back to the mothership, your work done on the satellite are already pushed into the refs/remote/origin/ tracking branches, so you can merge them in (you can do this after shutting down your satellite laptop, which is the beauty of this setup):
$ git merge origin/master
to merge in the changes you did on the satellite.
[Footnote]
*1* If you prefer to keep a straight history, you may want to
fetch+rebase instead of pull which is a fetch+merge, in
which case this step will be: $ git fetch
$ git rebase origin/master