源代码管理
源代码管理
技术博客http://www.cnblogs.com/ChenYilong/
新浪微博http://weibo.com/luohanchenyilong
源代码管理
技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong
源代码管理器的起源
• 现在的软件项目通常是由一个研发小组共同分析、设计、编码、维护 以及测试的
• 针对团队开发需要解决以下问题:
.1. 如何对研发项目进行整体管理
.2. 项目开发小组的成员之间如何以一种有效的机制进行协调;
.3. 如何进行对小组成员各自承担的子项目的统一管理
.4. 如何对研发小组各成员所作的修改进行统一汇总
.5. 如何保留修改的轨迹,以便撤销错误的改动
.6. 对在研发过程中形成的软件的各个版本如何进行标识,管理及差 异识辨等等
• 源代码管理工具就是为了解决上述问题应运而生的
常见源代码管理工具
• SVN:又称subversion,是cvs的接班人,是一款集中式源代码管理工具。 曾经是绝大多数开源软件的代码管理工具(google code),在国内软件 企业使用最为普遍
• GIT:一款分布式源代码管理工具,目前越来越多的开源软件使用,不 过在国内企业尚未普及
• 其他:- CVS 1990年诞生,远古时代的主流源代码管理工具 - Mercurial,Google支持,不过国内软件公司使用较少 - SourceSafe(VSS),微软产品只能在局域网使用
- Team Foundation Server (TFS),微软的新一代SCM工具,主要是为 了VSS的失败负责,但是他还不是版本管理上还是很强,只不过, 他集成了一大堆各种各样的工具
SVN工作原理示意图
GIT工作原理示意图
SVN基本使用
• 客户端软件:Cornerstone
- Xcode对SVN的支持并不是非常友好- 尤其新建文件夹时,在Xcode中非常容易出问题
• 创建代码仓库svnadmin create /Users/apple/svn/mycode
svn常用命令
• # checkout:检出,从服务器获取版本控制代码
• 1> svn co svn://svn的URL地址/Users/apple/ Desktop/mycode
• # add:将文件添加到版本控制中
• 2> svn add xxx.h
• # commit:将指定文件夹或文件提交至服务器
• 3> svn ci -m "注释" ./
• # update:从服务器更新最新的文件
• 4>svnup
• # delete:将指定文件从版本控制中删除
• 5> svn delete xxx.h
Git的基本使用
• 使用commit提交至本地代码库随时做工作备份 • 使用push将修改统一推送到远程服务器• 使用pull将远程服务器的修改同步到本地
Git常用命令
Ø 初始化一个裸代码库 ü git init --bare project.git Ø 克隆ü git clone
Ø 添加文件ü git add .
Ø 提交文件ü git commit -m “修订消息" Ø 推送到远程代码库
ü git push origin master Ø 从远程代码库更新ü git pull
Ø 查看状态
ü git status
将Xcode项目与GITHUB连接的操作步骤
cd ~/.ssh
# 生成rsa密钥ssh-keygen -t rsa -C"xxx@gmail.com" # 将密钥文件复制到剪贴板 pbcopy < ~/.ssh/xxx_rsakey.pub
# 进入github,设置ssh密钥 1. EditProfile
2. SSHKeys
3. AddSSHKey
4. 将刚刚复制的Key粘贴,然后提交
将Xcode项目与GITHUB连接的操作步骤
# 添加rsa密钥 ssh-add liufan_rsakey # 测试github连接ssh -T git@github.com
# 关联项目 cd 项目文件夹/
# 为当前文件夹初始化git
git init
# 添加远程服务器 git remote add origin git@github.com:liufan321/HelloWorldDemo.git # 从服务器拉项目 git pull -u origin master
# 将项目内容推送到服务器 git push -u origin master
SVN&GIT
• SVN
- 一个代码仓库中可以包含多个项目,甚至其他非开发文件夹 - 集中式管理- 每个文件夹下都有.svn文件夹,维护效率较低- 需要团队开发人员紧密沟通
• GIT
- 一个项目只能对应一个代码仓库- 分布式管理:U盘,Dropbox,云端都可以是服务器 - 任何一个Clone版本都是服务器- 只有在根目录下有一个.git文件夹,维护效率更高 - 可以多次回退版本
三个文件夹的含义
• trunk:主干,当前开发项目的主目录• branches:分支目录,添加非主线功能时使用,
开发测试之后,可以合并到主干项目中• tags:标记目录,通常作为重大版本的分界备份
源代码管理使用的注意事项
• 上班第一件事情update,得到前一天最新的文件
• 下班最后一件事情commit,将当天工作提交至服务器
• 如果要修改重要的公共文件,提前喊一声,修改完成并测试通 过后,立即提交,同时别忘了再喊一声
• checkout只是在第一次创建工作副本时有用
• 保管好自己的密码
• 注意:
• 每天下班前必须提交源代码,提交的源代码必须是测试通过并
且保证能够正常编译的,否则......
• 每次提交必须写注释,否则......
• 少量多次......
• 防止出现冲突的最好的办法就是多喊两声
© chenyilong. Powered by Postach.io
作者:
出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
本文版权归作者和博客园共有,欢迎转载,
但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。