Git与svn的不同
大体上是相似的,主要有2点不同:
1、git的库是分布式的,在本地仍然也有库,记录所有数据和变化。
2、git的分支/合并理念与svn不同,
git中没有单纯的主干一说,任何一个版本都是分支,但是master分支相当于svn中的主干trunk。因此git的最大亮点在于切换分支和合并差异比较容易。支持几千个分支同时开发。大多时候merge即可。
git的优点
1.速度远胜svn。2分布式容灾性能好。3协同开发更上一层楼。4不依赖服务器而实现本地提交和版本控制与历史保留。5.及时感知文件系统的任何变更。svn下为了不造成错误,你必须执行add,rename,move,detele等各种svn命令来帮助svn识别本地文件变动,git则自动检测。
git的缺点
由于分布式库的特点,大多情况下,git都是用于开源项目的管理,因此权限控制没有subversion强力。
另外由于是linus主持,倾向于linux下使用。git的官方图形化操作界面功能不太丰富
简单概念
git clone
类似于svn checkout。从服务器获取git库。但是无法对非空文件夹使用clone
git checkout
类似于svn checkout。 但是与svn有不同: 对于一个本地git库,可以多次checkout。这时git checkout -b somename相当于创建并切换到一个somename分支。
git branch
类似于svn branch 生成一个分支
git commit:
与svn commit不同,将修改提交到本地库
git push :
类似于 svn commit 将本地修改同步到服务器
git pull :
类似于svn update ,将服务器修改下到本地
git add
:提交变更至缓存
git reset
类似于svn的 revert。如加入–hard 会把比回滚版本新的版本给抹消。
origin:
原始库,这里是指服务器库的url地址。Git配置文件里有作替换为地址。
git status
查看当前状态
git log
查看提交的记录
官方工具说明:
Git客户端安装 后会有github 和gitshell两个工具。
在网站上创建repository后,用github.exe登陆,选择左上+后clone,填入网站地址,可以从服务器获取库了。
而add是添加本地已有的库,create是创建本地git库,创建完毕之后可以点击右上角的publish发布到github网站
Sync :把本地修改提交到服务器库。 相当于git push origin 分支名
资源链接
最好的书籍
http://git-scm.com/book/zh/v1/起步-关于版本控制图解
图解git原理
http://my.oschina.net/xdev/blog/114383
命令简要集合:
http://neverno.me/hello-world/git-commands-github.html
详细说明
http://timtang.me/blog/2012/05/18/git/
其他一些参考
http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_cn/ch04.html
http://www.cnblogs.com/cocowool/archive/2012/02/17/2356125.html
http://www.cnblogs.com/flying_bat/p/3408634.html