Git&GitHub——Git相关笔记

Git基础

版本管理

什么是版本管理

版本管理就是一种记录文件变化的方式,以便将来查阅待定版本的文件内容。

人为维护文档版本的问题

  • 文档数量多且命名不清晰导致文档版本混乱
  • 每次编辑文档需要赋值,不方便
  • 多人同时编辑同一个文档,容易产生覆盖

Git是什么

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

Git安装

网址:https://git-scm.com/download/win

Git基本工作流程

git仓库 暂存区 工作目录
用于存放提交记录 临时存放被修改文件

Git&GitHub——Git相关笔记_第1张图片

Git的使用

Git使用前配置

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

  • 配置提交人姓名:git config --global user.name 提交人姓名
  • 配置提交人邮箱:git config --global user.email 提交人邮箱
  • 查看git配置信息:git condig --list
    Git&GitHub——Git相关笔记_第2张图片

注意

  • 如果要对配置信息进行修改,重复上述命令即可。
  • 配置只需执行一次。

提交步骤

  • git init 初始化git仓库
  • git status 查看文件状态
  • git add 文件列表 追踪文件
  • git commit -m 提交信息 向仓库提交代码
  • git log 查看提交记录
    Git&GitHub——Git相关笔记_第3张图片

撤销

  • 用暂存区中文件覆盖工作目录中的文件:git checkout 文件

    • 应用场景: 在项目开发中将修改到一般的文件添加到暂存区中,然后回到工作目录继续开发,过了一会儿发现后来开发的代码有问题,需要将代码恢复到开发一半时的状态,这时就可以用暂存区中的文件覆盖工作目录中的文件。

      注意:执行之后暂存区中仍存在该文件

  • 将文件从暂存区中删除:git rm --cached 文件

    • 应用场景:在工作目录下,有一些测试文件,这些测试文件是不想让git管理的,因为他只是一些临时文件,用完就删除了,但有的时候会不小心添加到了暂存区中,这是我们就应该将它从暂存区中删除。因为不进行删除它就会被后续的操作提交到git’仓库中。

    注意:命令执行完成后,在暂存区中就没有这个文件了,这个文件也不被git所管理了,但是在工作目录中还是存在这个文件的
    Git&GitHub——Git相关笔记_第4张图片

  • 将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git reset --hard commitID

    • 使用场景:工作目录中的代码存在问题,git仓库中的一些提交记录也存在问题,希望将更早的提交记录恢复出来,并且删除掉存在问题的提交记录。
      Git&GitHub——Git相关笔记_第5张图片

Git进阶

分支

为了方便理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。

使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

在开发过程中,分支与分支之间是相互独立的,互不影响。
Git&GitHub——Git相关笔记_第6张图片

分支细分

  • 主分支(master):第一次向git仓库提交更新记录时自动产生的一个分支。

    • 在实际开发项目过程中,一定要保持开发主线的稳定性,也就是说要保持主分支中代码的稳定性。主分支中的代码一般都是可以用于向外界发布的代码,所以一般开发工作都不会在主分支上进行,在开发过程中都会创建一条开发分支,当功能在开发分支完成以后,经过测试没有问题,再将开发分支中的代码合并到主分支上。
      Git&GitHub——Git相关笔记_第7张图片
  • 开发分支(develop):作为开发的分支,基于master分支创建。

  • 可以理解为主分支的一个副本,功能在副本上开发,开发完成以后再将副本中的代码拷贝到主分支上

  • 功能分支(feature):作为开发具体功能的分支,基于开发分支创建;

    • 作用就是开发一个独立的功能,当功能开发完成以后,再将功能分支中的代码合并到开发分支,这时功能分支就可以删除了,当开发分支中的功能累计到一定程度以后,再将开发分支中的代码合并到主分支。
    • 这样做的原因是因为开发分支也要保持最大程度的稳定性,除了开发功能要建立分支以外,修复bug也可以创建单独的分支,在git当中,分支还有其他的功能,比如分支也可以用来存储不同软件的版本,比如说jQuery(1,2,3)不同版本的jQuery可以放在不同分支中进行分别开发

    git 鼓励开发者使用分支的,因为它确实强大,允许多件事情同时进行互不影响

功能分支->开发分支->主分支

分支命令

  • git branch 查看分支
    • 当前在哪个分支哪个分支就会显示绿色并且前面带*号,否则是白色
  • git branch 分支名称 创建分支
    • 在哪个分支创建分支就是基于哪个分支创建分支
  • git checkout 分支名称 切换分支
    • 两个分支互不影响,所以当该分支上的文件提交到仓库之后,切换另一个分支后看不到该分支的文件
  • git merge 来源分支 合并分支
    • 合并完成以后,被合并分支依然存在
  • git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)
    • 如果说某一个分支上的工作已经完成,并且这个分支已经不需要继续存在了,这个时候我们就可以删除这个分支。

暂时保存更改

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

使用场景:分支临时切换

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

你可能感兴趣的:(Git&GitHub)