git学习——<四>git版本管理
一、git版本管理的优势
都说git比svn强大,强大在哪呢?
首先,从部署上说:svn、cvs都是集中式的,一台服务器上部署服务,所有客户端编写的代码都要提交到该服务器上。git是分布式的,所有人都可以从同一个版本库上克隆相同的版本库到自己的机子上。
这有什么好处呢?
1.使用svn和cvs,提交和check代码,你必须和服务器连上网,否则肯定不能用。git本地就是版本库,所以,你不链接其他机子也能提交到版本库中。
2.每个人都有一个版本库,不担心服务器会挂掉。
3.也可以实现一台机子进行代码管理,让一台机子7*24运行着,大家都把自己版本库里的东西提交给它,也从它那里check别人的代码
其次,svn和cvs收集代码,是将每次提交的文件都会保留一个副本,那怕你只有一个空格的改变,也会创建一个新文件,但是git只记录每次修改了什么,没修改的不会记录,这样势必保存的文件小,服务器磁盘压力小。
二、同步远程仓库
我们使用github提供的远程仓库,登录github并创建初始化一个仓库。
1.要使用ssh先创建本地密钥
$ ssh-keygen -t rsa -C"youremail@example.com"
会在/root/.ssh目录下生成id_rsa(私钥)和id_rsa.pub(公钥),然后在github账户里添加公钥文件中的内容到你声明的公钥中。
然后将公钥中的内容添加到github的ssh key中。添加了公钥之后,github就能认识到对版本库的修改是否是你本人了。
注意:在github上创建版本库时,一定要勾选init,否则本地版本库无法连接到该远程库。
2.设置
默认名称是origin
git remote add 名称(随你起,要能记住) git@github.com:michaelliao/learngit.git(自己的库地址)
3.推送
git push 名称(同前面起的名称一致) master
三、克隆远程库
克隆远程库
git clone 地址
git自动把本地的master分支和远程master分支对应起来了,并且,远程仓库的默认名称是origin
推送分支
git push origin master:将本地的master分支推向远程
git push origin dev:将本地的dev分支推向远程