新浪微博 有道云笔记 麦库 EverNote Pocket Instapaper 更多

源代码管理

源代码管理


技术博客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
XcodeSVN的支持并不是非常友好尤其新建文件夹时,在Xcode中非常容易出问题
• 创建代码仓库svnadmin create /Users/apple/svn/mycode

svn常用命令 
 # checkout:检出,从服务器获取版本控制代码 
 1> svn co svn://svnURL地址/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
posted @ 2014-03-07 21:21  iTeaTime(技术清谈)  阅读(523)  评论(0编辑  收藏  举报