罗浩的技术专栏 Android and Python and C++ Coder

版本控制Git大纲

2019-08-14
qmsggg37

git

为什么要使用版本控制?

版本控制工具应具备的那些功能?

  • 协同修改
    多人并行不悖的修改服务器上的同一文件。

  • 数据备份
    不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。

  • 版本管理
    在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,
    提高运行效率。这方面SVN采用的是增量管理的方式,每次增量保存,如果需要这整改文件
    就会把每次增量保存的和最开始的文件进行拼凑起来,呈现出来的就是最新的文件,
    而Git采取了文件系统快照的方式。

  • 版本控制
    • 对团队中参与开发的人员进行权限控制。
    • 对团队开发者贡献的代码进行审核—-Git独有。
  • 历史记录
    • 查看修改人、修改时间、修改内容、日志信息等 。
    • 将本地文件恢复到某一个历史状态。
  • 分支管理
    允许开发团队在工作过程中多条生产线共识推进任务,进一步提高效率。

版本控制介绍?

  • 版本控制
    工程设计领域中使用版本控制管理工程蓝图的设计过程。在IT开发过程中也可以使用版本控制思想管理代码的迭代。
  • 版本控制工具
    • 集中式版本控制工具:
      CVS、SVN、VSS…
    • 分布式版本控制工具:
      Git、Mercurial、Bazaar、Darcs…

      Git简义

  • Linux系统版本控制历史
    • 1991年
      Linus本人手动合并其他代码贡献者提供的Linux代码;
    • 2002年
      商业软件:BitKeeper
      BitKeeper的东家BitMover公司出于人道主义,授权Linux社区免费使用这个版本控制系统。但是要求不能进行破解。
    • 2005年
      开发Samba的Andrew试图破解BitKeeper的协议,被BitMover公司发现,要收回Linux社区的免费使用权。
      Linux社区无法像商业公司那样对开发者进行强有力的约束。
      Linus自己用C语言开发了一个分布式版本控制系统:Git
      主体程序开发完成只用了两周;
      一个月以后Linux系统代码由Git管理
    • 2008年
      Github上线

Git 官网

https://git-scm.com/

Git 的优势

  • 大部分操作在本地完成,不需要联网(集中式对比)
  • 完整性保证
  • 尽可能添加数据而不是删除或者修改数据
  • 分之操作非常快捷流畅
  • 与Linux命令全面兼容

Git 结构

  • 工作区 写代码
  • 暂存区
    临时存储
  • 本地库
    历史版本

Git和代码托管中心

维护远程代码库

  • 局域网环境下
    • GitLab服务器
  • 外网环境下
    • GitHub
    • 码云

    本地代码库和远程代码托管中心协作

Git安装

Git命令行操作

  • 本地库初始化(.git): git init
    • config
    • description
    • HEAD
    • hooks
    • info
    • objects
    • refs

    注意:.git目录中存放的是本地库香港的子目录和文件,不要删除,也不要胡乱修改。

  • 设置签名
    • 形式:
      用户名:qmsggg37
      Email地址: luohao37@xxx.com
    • 作用:区分不同开发人员的身份
    • 辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
    • 命令:
      项目级别/项目仓库级别:仅在当前本地代码库级别生效
      git config(默认是项目级别)
      系统用户级别:登录当前操作系统的用户范围
      git config –global
      优先级:就近原则(项目级别优先于系统用户级别)
      二者都没有可能不允许
  • 查看工作区/暂存取状态
    • 命令: git status

上一篇 git mv 与 mv

下一篇 cmake初试

Comments

Content