Git神器 初体验-本地仓库:小结必会知识点

1.Git(分布式版本控制系统)

Git(读音为/gɪt/)是一个开源的 分布式版本控制系统 ,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核 开发而开发的一个开放源码的版本控制软件。
在这里插入图片描述


2.Git 与 SVN 区别:

摘自菜鸟教程

  • Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

  • 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。

Git 与 SVN 区别点:

1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

在这里插入图片描述


3.Git的工作流程

在这里插入图片描述


4.Git的基本使用以及注意事项

4.1 Git使用前的配置

以下所有操作都是在你写项目的根文件夹中运行 Git Bash 控制台

在使用git之前,需要告诉git你是谁,在向git仓库中提交时需要用到

  1. 配置提交人姓名: git config --global user.name 提交人姓名 温馨提示:(名字最好是英文)
  2. 配置提交人邮箱: git config --global user.email 提交人邮箱 温馨提示:(邮箱可以随便写,我写的是自己的qq邮箱)
    在这里插入图片描述
  3. 查看配置信息:git config --list
    在这里插入图片描述
  • 另一种查看方式:
    在这里插入图片描述

在这里插入图片描述

  • 注意!
  1. 如果要对一次配置信息进行修改,重复上述命令即可(比如我想改用户名就直接再执行一次配置用户名的指令,最后面写上自己二次修改的用户名)
  2. 配置只需要执行一次

4.2 提交步骤

  1. git init 初始化一个git仓库
    在这里插入图片描述
  • 注意!初始化的仓库是 自动隐藏 起来的,需要设置一下就能显示出来(文件处于半透明状态,说明是虚拟的),设置如下:
    在这里插入图片描述
  1. git status 查看文件状态
  • 创建一个根目录创建index.html,写少许内容进去,保存
  • git status 出现如下界面:
    在这里插入图片描述
    3. git add 文件列表 追踪文件 (其实就是把文件放入暂存区,还没进入git仓库里)
    在这里插入图片描述
  • 无任何提示则说明添加成功
  • git status 可查看现在index.html文件状态
    在这里插入图片描述
  1. git commit -m 提交信息 向仓库中提交代码 (此时代码从暂存区到了git仓库中)
    在这里插入图片描述
  2. git log 查看提交记录
    在这里插入图片描述
  • 此时 输入git status,可看到工作树很干净,无文件需要提交
    在这里插入图片描述

4.3 撤销操作

  1. 用暂存区中的文件覆盖工作目录中的文件: git checkout 文件名
  2. 将文件从暂存区中删除:git rm --cache 文件

在这里插入图片描述

  1. 将git仓库中指定的更新目录恢复出来,并且覆盖暂存区和工作目录: git rest --hard commit ID,(这里的ID是原来提交是管理器自动生成的,复制粘贴过来即可

在这里插入图片描述
在这里插入图片描述
4. git rm -r --cached 文件名(如果代码提交错误,则使用这指令,可以使代码从仓库中删除)
在这里插入图片描述

  1. 有错误提交自然有误删操作,可以使用此指令恢复文件 git restore --stage 文件名

在这里插入图片描述


4.4 分支操作

为了便于理解,暂时可以认为分支就是当前工作目录中的代码的一个副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

在这里插入图片描述

4.4.1分支细分

  • 主分支(master):第一次向git仓库里提交更新记录时自动产生的一个分支
    在这里插入图片描述

  • 开发分支(develop): 作为开发分支,基于master分支创建

  • 功能分支(feature/*): 用于开发新的功能,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到 develop 分支,之后删除该分支。

  • bug修复分支(bugfix/*): bug修复分支,用于修复不紧急的bug,普通bug均需要创建bugfix分支开发,开发完成自测没问题后合并到 develop 分支后,删除该分支。

  • 发布分支(release/*): 用于代码上线准备,该分支从develop分支创建,创建之后由测试同学发布到测试环境进行测试,测试过程中发现bug需要开发人员在该release分支上进行bug修复,所有bug修复完后,在上线之前,需要合并该release分支到master分支和develop分支

  • 紧急bug修复分支(hotfix/*): 该分支只有在紧急情况下使用,从master分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到master分支以便上线,同时需要再合并到develop分支。

三大分支:主分支 开发分支 功能分支
顺序:功能分支(feature/*): -> 开发分支(develop): -> 主分支(master):


4.4.2 分支命令

  1. git branch 查看所处当前分支
    在这里插入图片描述
  2. git branch 分支名称 创建分支
    在这里插入图片描述
  3. git checkout 分支名称 切换分支
  • 注意! 在切换分支是当前分支下的文件代码必须 先提交或者暂时保存 , 否则,当前文件会被代入其他分支,导致文件混乱。
    实例如下:

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

  • 解决方案:

方法1:切换分支之前先保存到git仓库 git commit -m 提交说明
在这里插入图片描述

在这里插入图片描述
方法1:暂时保存更改 (推荐使用方案)

在git中,可以暂时提取分支上所有的改动并储存,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换

  • 储存临时改动:git stash
  • 恢复改动:git stash pop

以下实现分支切换,想过和方法一 一样
在这里插入图片描述

4.git merge 来源分支名称 合并分支

在这里插入图片描述
5. git branch -d 分支名称 删除分支 (分支被合并了才允许被删除) (-D 强制删除

已合并:
在这里插入图片描述
未合并:
在这里插入图片描述


发布了31 篇原创文章 · 获赞 12 · 访问量 3212

猜你喜欢

转载自blog.csdn.net/haduwi/article/details/105662903