zoukankan      html  css  js  c++  java
  • 源代码管理

    源代码管理


    技术博客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


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    家用游戏机简史
    九:二叉搜索树与双向链表(二叉搜索树转为有序双向链表)
    诺心(LECAKE) | 氪加
    微博书 | 氪加
    王利芬对话蒲易 ——花店如何成为高端电商?_北京_歇会儿网
    王利芬对话蒲易 ——花店如何成为高端电商?_线下活动报名_优米网
    团队介绍 | 魅动 Magic Motion
    魅动成人用品情趣跳蛋女用自慰器具 魅惑紫【图片 价格 品牌 报价】-京东商城
    最新创业好项目 | 投资项目推荐 | 数据库 | 氪加 特效
    Fancy
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3587198.html
Copyright © 2011-2022 走看看