Fan Zhen Coder & Teacher

版本控制系统从SVN迁移到Git

2014-01-17

一直用 SubVersion 作为版本控制系统,已经有5、6年了,windows 下有很好的客户端 tortoiseSVN,很方便。问题在于服务器,最近服务器的硬盘坏了,而且是两个硬盘,数据恢复不出来了,还好本地有备份。查找原因,估计是因为APC UPS电池寿命到了,断电造成的。顺便吐槽一下,APC的服务太差了,想更换电池,找遍华东各代理,没货。痛定思痛,准备好好整一下版本控制及备份系统。

第一步,就是Git,闻名已久,Linus Torvalds的作品。先安装 msysgit 和 tortoiseGit,然后找了本书《版本控制之道-使用Git》来看,基本命令整理如下:

git ini  # 新建项目
git add filename # 添加文件
git commit -m “add in filename”	 # 提交
git log # 日志
git status # 当前工作目录状态
git commit -a # 提交所有更改
git branch RB_1.0 master # 开分支
git checkout RB_1.0 # 切换分支
git tag 1.0 RB_1.0 # 打1.0标签(里程碑)
git checkout master # 回主干
git rebase RB_1.0 # 变基?把一条分支上的修改在另一条分支上重现
git branch -d RB_1.0 # 删除分支
git branch RB_1.0.1 1.0 # 从tag 1.0 开分支
git archive -—format=zip -—prefix=mysite-1.0/ 1.0 > mysite-1.0.zip
git clone git://github.com/… mysite-remote # 克隆远程版本库
git mv index.html hello.html # 移动或重命名文件
.gitignore # 忽略文件
git merge alternate # 把alternate分支直接合并到主分支
git branch -m master mymaster # 分支重命名
git pull # git fetch # 更新远程分支并合并
git push git://aaa.com/dev-erin.git # 推入改动到远程
git remote add erin git://aaa.com/dev-erin.git # 远程库别名
git submodule init hocus # 添加子模块 hocus
git submodule update hocus # 更新子模块,注意:会覆盖未提交的内容
git checkout HEAD^ # 检出 HEAD前一个提交

书里列出了SVN对应的Git命令: SVN2Git


Similar Posts

Comments