If you use github, you can follow this.

I use huachlee/ruby-china repository for example.

At huacnlee/ruby-china repository homepage, clicked “Fork” button, then after serval minutes, you will have you own forked repository copy.Then you clone to local.

git clone git@github.com:qichunren/ruby-china.git

Then you commit your changes, and push to it.When you found the original repository has some updated feature,you can do as follow:

cd ruby-china
git remote add upstream git://github.com/huacnlee/ruby-china.git
caojinhua:ruby-china caojinhua$ git fetch upstream
remote: Counting objects: 345, done.
remote: Compressing objects: 100% (164/164), done.
remote: Total 266 (delta 196), reused 156 (delta 98)
Receiving objects: 100% (266/266), 31.92 KiB | 25 KiB/s, done.
Resolving deltas: 100% (196/196), completed with 67 local objects.
From git://github.com/huacnlee/ruby-china
 * [new branch]      github_autocomplete -> upstream/github_autocomplete
 * [new branch]      markdown   -> upstream/markdown
 * [new branch]      master     -> upstream/master
 * [new branch]      post       -> upstream/post
caojinhua:ruby-china caojinhua$ git merge upstream/master

That is it.