Git

1. Git 历史

  • 1991-2002年,Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上。
  • 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。
  • 2005 年,因为 Linux 的开发人员试图破解 BitKeeper 的协议,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。
  • 这就迫使 Linux 的缔造者 Linus Torvalds 花了两周时间自己用 C 写了一个分布式版本控制系统 Git,一个月之内,Linux 系统的源码已经由 Git 管理了
  • Git 迅速成为最流行的分布式版本控制系统,尤其是 2008 年,GitHub 网站上线了,它为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub

2. Git 与 SVN 对比

2.1 SVN 的介绍

SVN 是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。

下图就是标准的集中式版本控制工具管理方式:

在这里插入图片描述

2.2 Git 的介绍

Git 是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件 A,其他人也在电脑上改了文件 A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

下图就是分布式版本控制工具管理方式:

在这里插入图片描述

3. Git 工作流程

一般工作流程如下:

  1. 从远程仓库中克隆 Git 资源作为本地仓库。
  2. 从本地仓库中 checkout 代码然后进行代码修改。
  3. 在提交前先将代码提交到暂存区。
  4. 提交修改到本地仓库,本地仓库中保存修改的各个历史版本。
  5. 在修改完成后,需要和团队成员共享代码时,可以将代码 push 到远程仓库。

下图展示了 Git 的工作流程:

在这里插入图片描述

4. Git 下载和安装

  1. 进入 Git 官网,下载对应系统的安装包

    https://git-scm.com/download
    
  2. 安装 git(这里默认安装就行)

  3. 下载 Git 图形化工具 TortoiseGit,以及中文安装包

    https://tortoisegit.org/download/
    
  4. 安装 TortoiseGit(安装时选择 SSH Client)

    在这里插入图片描述

  5. 安装 TortoiseGit 中文安装包

5. 使用 Git 管理文件版本

5.1 版本库

5.1.1 版本库的介绍

版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于 Git 是分布式版本管理工具,所以 Git 在不需要联网的情况下也具有完整的版本管理能力。

5.1.2 使用 GitBash 创建版本库

  1. 在需要创建版本库的文件夹,右键点击 Git Bash Here

    在这里插入图片描述

  2. 输入创建仓库命令

    git init
    
  3. 版本库创建成功,会在此目录下创建一个 “.git” 的隐藏目录

    在这里插入图片描述

5.1.3 使用 TortoiseGit 创建版本库

  1. 在需要创建版本库的文件夹,右键点击 Git 在这里创建版本库

  2. 点击确定(注意不要勾选"制作纯版本库")

    在这里插入图片描述

5.2 添加文件

5.2.1 工作区和暂存区

工作区

工作区就是你在电脑里能看到的目录,比如我的 rep1 文件夹就是一个工作区。

有人可能会说 rep1 不是版本库吗?其实 rep1 目录是工作区,在这个目录中的 “.git” 隐藏文件夹才是版本库。

暂存区和分支

Git 的版本库里存了很多东西,其中最重要的就是称为 stage 的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。

在这里插入图片描述
我们把文件往 Git 版本库里添加的时候,分两步执行:

  1. 用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区

  2. 用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支

5.2.2 提交文件到当前分支

  1. 在 rep1 目录下创建一个 test.txt 文件

    在这里插入图片描述

  2. 右键 test.txt --> TortoiseGit --> 添加

    在这里插入图片描述

  3. 在 rep1 目录下,右键 Git 提交 -> master

    在这里插入图片描述

5.3 修改文件

5.3.1 提交修改文件

  1. 修改 test.txt 文件

  2. 在 rep1 目录下,右键 Git 提交 -> master

    在这里插入图片描述

5.3.2 查看修改历史

  1. 在 rep1 目录下,右键 TortoiseGit --> 显示日志

    在这里插入图片描述

5.3.3 比较版本差异

  1. 选中要比较的两个版本

    在这里插入图片描述

  2. 右键 比较版本差异

    在这里插入图片描述

  3. 双击 test.txt

    在这里插入图片描述

5.3.4 文件还原

  1. 修改 test.txt 文件

  2. 右键 test.txt --> TortoiseGit --> 还原

    在这里插入图片描述

5.4 删除文件

  1. 选择要删除的文件夹,右键 TortoiseGit --> 删除

  2. 在 rep1 目录下,右键 Git 提交 -> master

    在这里插入图片描述

6. 远程仓库

现在我们已经在本地创建了一个 Git 仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库,

常用的远程仓库有 GitHub,码云

6.1 在 GitHub 创建仓库

  1. 在 GitHub 注册一个账号

  2. 点击右上角头像 --> your repositories --> New

    在这里插入图片描述

  3. 填写仓库信息
    在这里插入图片描述

  4. 点击 Create repository

6.2 同步到远程仓库

  1. 复制远程仓库的 HTTPS 地址

    在这里插入图片描述

  2. 在本地仓库的文件夹右键 Git 同步 --> 管理

    在这里插入图片描述

  3. 填写复制的 URL --> 确定

    在这里插入图片描述

  4. 选择刚才填写的远端 URL --> 推送

    在这里插入图片描述

  5. 填写 GitHub 用户名和密码

    在这里插入图片描述

  6. 同步成功

    在这里插入图片描述

6.3 从远程仓库克隆

  1. 复制的远程仓库 URL

    在这里插入图片描述

  2. 在本地仓库右键 Git Clone

    在这里插入图片描述

6.4 从远程仓库拉取

如果我们已经克隆了远程仓库,此时远程仓库的文件又有修改,我们不必再克隆一份远程仓库的文件了,而可以将远程仓库修改的文件拉取到本地仓库。

  1. 在本地仓库文件右键 TortoiseGit --> 拉取

    在这里插入图片描述

7. 分支管理

7.1 分支的概念

我们每次的提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。

Git 中默认有一条主分支,即 master 分支。HEAD 指向的就是当前分支

在这里插入图片描述

7.2 创建及合并分支

  1. 当我们创建新的分支 dev 时,Git 会新建一个指针叫 dev,指向 master 相同的提交,再把 HEAD 指向 dev

    在这里插入图片描述

  2. 从现在开始,对工作区的修改和提交就是针对 dev 分支了,比如新提交一次后,dev 指针往前移动一步,而 master 指针不变

    在这里插入图片描述

  3. 如果我们在 dev 上的工作完成了,就可以把 dev 合并到 master 上了

    在这里插入图片描述

7.3 使用 TortoiseGit 管理分支

  1. 在本地仓库文件夹右键 TortoiseGit --> 创建分支

    在这里插入图片描述

  2. 在本地仓库文件夹右键 TortoiseGit --> 切换分支 dev

    在这里插入图片描述

  3. 修改一下 dev 分支上的文件,提交到本地仓库

  4. 切换到 master 分支

    在这里插入图片描述

  5. 在本地仓库文件夹右键 TortoiseGit --> 合并(这样就合并了 master 和 dev 分支)

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bm1998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值