代码管理


前言

版本控制就是一种记录一个或若干文件内容变化以便将来来查阅特定版本内容的系统,目的就是让所有开发人员协同工作,减少工作差异导致的成本。换句话讲就是让开发人员使用统一的文件版本。


一、版本控制分类

1.1 本地版本控制

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。
在这里插入图片描述

1.2 集中版本控制 SVN

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。
在这里插入图片描述
  所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS。

1.3 分布式版本控制 Git

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。不会因为服务器损坏或者网络问题,造成不能工作的情况!
在这里插入图片描述
备注:Git与SVN的主要区别
在这里插入图片描述
在这里插入图片描述

二、安装Git(Windows版)

2.1 官网下载安装包

打开官网Git - Downloading Package 会自动下载,下载后点击安装即可。目前最新版本是Git-2.33.1-64-bit。官网界面如下图,然后根据自己的电脑选择对应的版本,一般选 64 -bit for Windows Steup。git官网下载太慢:选择下载传送门
https://npm.taobao.org/mirrors/git-for-windows/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 安装

安装的界面依次如下图所示。

2.2.1 关于Git版本信息,不用管,直接next。

在这里插入图片描述

2.2.2 选择安装位置,根据自己情况决定。

在这里插入图片描述

2.2.3 选择安装Git时的组件,直接默认即可。

在这里插入图片描述

2.2.4 在开始菜单创建启动快捷图标,默认即可。

在这里插入图片描述

2.2.5 选择Git的编辑器,里面有Vim、Visual Studio、VScode等编辑器可以选,根据情况选择。

在这里插入图片描述

2.2.6 在新的仓库中调整初始的分支名,默认即可。

在这里插入图片描述

2.2.7 调整Git的环境变量,选择默认推荐的即可。

在这里插入图片描述

2.2.8 选择SSH执行方式,选择默认的绑定的SSH方式即可。

在这里插入图片描述

2.2.9 选择HTTPS传输后端库,默认第一个即可。

在这里插入图片描述

2.2.10 配置文本文件的行尾会话,选择默认即可。

在这里插入图片描述

2.2.11 选择Git Bash要使用的终端,选MinTTY,这个类似于Linux终端,可自行调整大小,比较方便,而使用Windows自带终端则比较生硬,不好随意调整大小。

在这里插入图片描述

2.2.12 选择git “拉取”的默认操作,选择默认即可。

在这里插入图片描述

2.2.13 配置通信证书助手,选择第一个即可。

在这里插入图片描述

2.2.14 配置想要使用的额外功能,根据自己选择,默认即可。

在这里插入图片描述

2.2.15 同上,默认即可。

在这里插入图片描述

2.2.16 静待安装

在这里插入图片描述

2.2.17 安装完成

在这里插入图片描述

2.3 检验是否安装成功

2.3.1 检验版本号

执行“Win + R"呼出任务管理器,键入

git --version

确认,会出现安装的Git的版本号,如图

在这里插入图片描述

2.3.2 开始菜单查看图标

成功后在开始菜单可以看见 Git Bash、Git CMD和 Git GUI图标,如图
在这里插入图片描述

其中Git Bash是控制台,采用Linux命令进行操作,使用最多,也比较推荐,点击后如图
在这里插入图片描述

Git CMD是调用系统的CMD控制台来执行GIt操作命令的,点击如图

在这里插入图片描述

Git GUI是可视化操作界面,点击如图

在这里插入图片描述

2.4. Git配置

2.4.1 查看Git配置
2.4.2 查看全局配置
打开Git Bash,输入

git config - l

回车即可看到全部的详细配置信息,如图
在这里插入图片描述

3.1.2 查看系统配置
键入

git config --system --list

来查看,如图
在这里插入图片描述

3.2 配置用户名和邮箱
这个只可配置1次,每一次 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改。输入

git config --global user.name "wcf"
git config --global user.email "junmoxiao_wcf@163.com"

如图

在这里插入图片描述

另外,global是全局命令,慎重使用
在这里插入图片描述

三、Git的工作状态和阶段

3.1 Git 和其它版本控制系统的主要差别

在这里插入图片描述

3.2 Git的3种工作状态

  • 已提交(Committed)

    数据已安全的保存在本地数据库中

  • 已修改(Modified)

    已修改文件但未保存在本地数据库中

  • 已暂存(Staged)

    对已修改文件的当前版本已做了标记,使之包含在下次提交的快照中

3.3 Git项目3个阶段

  • 工作目录(Workspace)

    也称为工作区,是从Git仓库中提取出一部分压缩数据放在本地磁盘上共开发人员使用。

  • 暂存目录(Index/Stage)

    也称暂存区,是个文件,保存了下次要提交的文件列表信息,在Git仓库中,按照术语叫做“索引”。

  • Git仓库(Repository)

    是 Git用来保存项目的元数据和对象数据库的地方。
    在这里插入图片描述

3.4 工作原理 / 流程

在这里插入图片描述

四、创建版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
3.1 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录
3.2 通过git init命令把这个目录变成Git可以管理的仓库
在这里插入图片描述
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、如何操作

5.1 添加到暂存区

使用命令 git add test.c添加到暂存区里面去。如下:
在这里插入图片描述
如果和上面一样,没有任何提示,说明已经添加成功了。

5.2 文件提交到仓库

用命令 git commit告诉Git,把文件提交到仓库。

在这里插入图片描述
现在我们已经提交了一个test.c文件了

5.3 查看是否还有文件未提交

用命令 git status来查看是否还有文件未提交.

在这里插入图片描述
上面的命令告诉我们 test.c文件已被修改,但是未被提交的修改。
在这里插入图片描述
文件重新添加版本库

5.4 查看文件是否改动

首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

接下来我想看下readme.txt文件到底改了什么内容,如何查看呢?可以使用如下命令:
git diff test.c 如下:
在这里插入图片描述
知道了对readme.txt文件做了什么修改后,我们可以放心的提交到仓库了,提交修改和提交文件是一样的2步(第一步是git add 第二步是:git commit)。
在这里插入图片描述

5.5 版本回退(一)

先使用命令git log 来查看下历史记录。
在这里插入图片描述
再用命令git reset --hard HEAD^把当前的版本回退到上一个版本
在这里插入图片描述
第一种是:git reset --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可。

5.5 版本回退(二)

先使用命令git reflog 获取到版本号
在这里插入图片描述
再git reset --hard 来恢复
在这里插入图片描述

5.6 丢弃工作区的修改

git checkout – file 可以丢弃工作区的修改
在这里插入图片描述
注意:命令git checkout – readme.txt 中的 – 很重要,如果没有 – 的话,那么命令变成创建分支了。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐