Set up an empty server repository and Use it locally
On Server For an empty repository
$ mkdir /srv/git/my_repository
$ cd /srv/git/my_repository
$ git init –bare
On Server From an Existing repository
$ cd /srv/git
$ git clone –bare https://github.com/rainbowrun/lim.git lim.git
On Client, Initial Change
<… Set up SSH access to server as user@server properly …>
$ git clone ssh://user@server/srv/git/my_repository
$ cd my_repository
<… Make some change and commit locally …>
$ git push origin master # For the first time push, create ‘master’ branch on server.
$ git push # For the subsequent push
$ git pull # Get the server’s change and merge locally.
Notes
After this setup, the local branch ‘master’ is tracking the remote branch ‘origin/master’.
Branch Locally
$ git branch testing # Add a new branch named testing.
$ git checkout branch # Checkout ‘testing’ branch
$ git checkout master # Checkout default ‘master’ branch
- Merge the work in ‘testing’ into master
$ git checkout master
$ git merge testing
$ git branch -d ‘testing’
Remote Branch
$ git branch show origin # Show remote branches
$ git branch -vv # Local branch, which is tracking which remote.
- Create a local branch ‘testing’, tracking remote ‘testing’
$ git pull
$ git checkout –track origin/testing
Git 总体印象
- 分布式的版本管理确实很新颖,用起来比集中式的方便。
- Branch 的概念很好,Track, Pull, Merge。
- 功能强大,同时也很复杂
- staging area in working tree,可以选择提交部分工作
- stash,可以把当前的工作环境封存起来
- rebase,把两个Branch变成一个,而不是merge。