两周前还在谈论git,结果很快就见到rails从svn转到了git上,上周自己的一个项目也用到了git.
一开始,当然至少能像CVS/SVN那样使用起来,其实很相似:
git clone [url] -> 把项目下载到本地
git pull -> update一下
git commit -a -> 这个是把自己的change保存到本地(注意不是远程,这也是git分布性所在)。而且不要忘记 '-a', '-a'的意思是当前全部的commit, 当然也可以跟文件名commmit单独文件
git push -> 这个是把你commit的change并入远程的server
git checkout [fname] -> 这个其实是revert你的修改。不加文件名参数则是显示哪些文件被修改了还没有commit.
其他的命令大多不言自明,比如:git add, git rm, git mv, git diff等等。
git带来什么好处呢,其实对绝大多数项目来说SVN足够好了,我能想到就是:
1. 有的时候用open source project会遇到不得不修改他们的代码的情况,而且这种修改可能无法提交到offcial版中,这样当offcial版变化的时候,就需要不断的merge,如果是用git, 这种管理就会容易很多(UPDATE git也可以clone svn的repository: http://pluskid.lifegoo.com/?p=295)。
2. 在出差路上等地方有时候没网络,照样可以做git commit,等有了网络后再git push.这个有点像强化版的elicspe的local history功能。
一开始,当然至少能像CVS/SVN那样使用起来,其实很相似:
git clone [url] -> 把项目下载到本地
git pull -> update一下
git commit -a -> 这个是把自己的change保存到本地(注意不是远程,这也是git分布性所在)。而且不要忘记 '-a', '-a'的意思是当前全部的commit, 当然也可以跟文件名commmit单独文件
git push -> 这个是把你commit的change并入远程的server
git checkout [fname] -> 这个其实是revert你的修改。不加文件名参数则是显示哪些文件被修改了还没有commit.
其他的命令大多不言自明,比如:git add, git rm, git mv, git diff等等。
git带来什么好处呢,其实对绝大多数项目来说SVN足够好了,我能想到就是:
1. 有的时候用open source project会遇到不得不修改他们的代码的情况,而且这种修改可能无法提交到offcial版中,这样当offcial版变化的时候,就需要不断的merge,如果是用git, 这种管理就会容易很多(UPDATE git也可以clone svn的repository: http://pluskid.lifegoo.com/?p=295)。
2. 在出差路上等地方有时候没网络,照样可以做git commit,等有了网络后再git push.这个有点像强化版的elicspe的local history功能。