优秀的编程知识分享平台

网站首页 > 技术文章 正文

代码管理-git、github、gitlab(代码管理网站)

nanyue 2025-01-31 14:28:03 技术文章 4 ℃

开课

在以后的工作中,我们会经常与开发部门的同事产生工作上的交集,对于软件开发团队来说, 源代码是其最重要的产出和资产, 如果没有一套完整的代码管理管理体系,一旦出现问题可能会导致整个团队的努力付诸东流,好的代码管理工具可以提高效率,提升便利性,并且能有效降低团队的沟通成本,本章我们一起来学习一款代码管理工具git的相关使用

知识点

git的介绍及相关概念

git的安装与初始化

git的常规使用

github的使用

gitlab的安装与配置

gitlab的使用

课程目标

能够说出什么是版本控制

能够说出git如何安装部署

能够说出git的常用操作

能够学会如何设置github

能够部署gitlab并配置

能够熟练使用gitlab

代码管理

版本控制

vcs version control system

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。版本控制最主要的功能就是记录一个或若干个文件内容变化 ,以便将来查阅特定版本内容,并且记录文件的所有历史变化,随时可恢复到任何一个历史状态。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。这就类似于我们玩游戏的存档,或者写论文一样,刚写完的论文是版本1,提交上去不合格,修改之后叫版本2,再修改叫版本3,以此类推,版本控制的工具有很多,从SVN、VSS、CVS、Clearcase到现在使用的比较多的git(注意这个git是本地的库,网络的库是github)等

版本控制系统变迁

本地版本控制系统(CVCS)

许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一 的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的 文件。为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文 件的历次更新差异。也就是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。



集中式的版本控制系统

只有一个中央数据仓库 ,如果中央数据仓库挂了或者不可访问 ,所有的使用者无法使用SVN ,无法进行提交或备份文件。本地版本控制 系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。



分布式的版本控制(DVCS)

在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整的镜像 下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分 别和不同工作小组的人相互协作。 你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以 前的集中式系统中是无法实现的。



Git

git是什么?

简单来说git就是一个分布式的版本控制软件,直接记录快照,而非差异比较Git 和其它版本控制系统(包括 Subversion 和近似工具)的主要差别在于 Git 对待数据的方法。 从概念上来说,其它大部分系统以文件变更列表的方式存储信息(基于差异的版本控制)。Git 不按照以上方式对待或保存数据。反之,Git 更像是把数据看作是对小型文件系统的一系列快照。 在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。 为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个快照流。

git的优势

近乎所有操作都是本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。因为你在本地磁盘上就有项目的完整历史,所以大部分操作看起来瞬间完成。这也意味着你在离线或者没有 VPN 时,几乎可以进行任何操作, 直到有网络连接时再上传。

保证完整性

Git 中所有的数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件 内容或目录内容。 这个功能建构在 Git 底层,是构成 Git 哲学不可或缺的部分。 若你在传送过程中丢失信息或损 坏文件,Git 就能发现。

很难丢失数据

你执行的 Git 操作,几乎只往 Git 数据库中添加数据。 你很难让 Git 执行任何不可逆操作,或者让它以任何方式清除数据。虽然未提交更新时有可能丢失或弄乱修改的内容。但是一旦你提交快照到 Git 中, 就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。

git的三种状态

Git 有三种状态

已修改(modified) 表示修改了文件,但还没保存到数据库中。

已暂存(staged) 表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

已提交(committed) 表示数据已经安全地保存在本地数据库中。

由于有这三种状态,所以Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。



工作区 是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。 暂存区 是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。 Git 仓库目录 是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。

基本的 Git 工作流程如下:

  1. 在工作区中修改文件。
  2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
  3. 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。

如果Git目录中保存着特定版本的文件,就属于已提交状态。

如果文件已修改并放入暂存区,就属于已暂存状态。

如果作了修改但还没有放到暂存区域,就是已修改状态。

总结

什么是版本控制

版本控制的变迁3分钟了解计算机发展历史-组团学

什么是git

git的优势

git的三种状态

重点:版本控制的概念及历史,git的优势及状态

难点:理解版本控制的概念,理解git的作用和三种状态



最近发表
标签列表