一文理解Git

1. Git基础

Git官网(下载速度慢) https://git-scm.com/

阿里云加速(下载速度快):https://npm.taobao.org/mirrors/git-for-windows/

1.1 版本管理

1.1.1什么是版本管理

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

1.1.2 Git基本概念

  • 版本库👉.git

    • 当我们使用git管理文件时,比如git init时,会创建出一个.git文件,我们把这个文件称为版本库。

    • .git文件另外一个作用就是它在创建的时候,会自动创建master分支,并且将HEAD指针指向master分支。

  • 工作区

    • 本地项目存放文件的位置,即workspace

  • 暂存区(Index/Stage)

    • 暂时存放文件的地方,通过add命令将工作区的文件加到缓冲区

  • 本地仓库(Repository)

    • 通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库

    • 通常而言,HEAD指针指向的是master分支

  • 远程仓库(Remote)

    • GitHub托管项目时,它就是一个远程仓库

    • 通常我们使用clone命令将远程仓库代码拷贝下来,本地代码更新后,通过push推送到远程仓库

1.1.3 人为维护文档版本的问题

  1. 文档数量多且命名不清晰导致文档版本混乱

  2. 每次编辑文档都需要复制,不方便

  3. 多人同时编辑同一个文档,容易产生覆盖

1.2 Git 是什么

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

1.3 基本工作流程

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

1.4 Git使用前配置

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

  1. 配置提交人姓名:git config --global user.name 提交人姓名

  2. 配置提交人邮箱:git config --global user.email 提交人邮箱

  3. 查看git配置信息:git config --list

「注意」

  1. 如果要对配置信息进行修改,重复上述命令即可。

  2. 配置只需要执行一次。

1.5 提交步骤

  1. git init初始化git仓库

  2. git status查看文件状态

  3. git add 文件列表追踪文件

  4. git commit -m 提交信息向本地仓库中提交代码

  5. git log查看提交记录

  6. git push https://github.com/ovfan/git-demo.git master本地仓库推送到GitHub远程仓库

  7. git remote add origin https://github.com/ovfan/git-demo.git 为远端仓库地址添加别名。

    • 添加完别名后,下次推送使用git push origin master

  8. git push -u 远程仓库地址别名 分支名称 -u 记住推送地址及分支,下次推送只需要输入git push即可

1.6 撤销

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

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

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

2. Git 进阶

2.1 分支

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

2.1.1 分支细分

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

  • 主分支,用于部署生产环境的分支,确保稳定性。

  • master分支一般由develop以及hotfix分支合并,任何情况下都不能直接修改代码。

  1. 开发分支(develop):作为开发的分支,基于 master 分支创建。

  • develop为开发分支,通常情况下,保存最新完成以及bug修复后的代码。

  • 开发新功能时,feature分支都是基于develop分支下创建的。

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

  • 开发新功能,基本上以develop为基础创建feature分支。

  • 分支命名:feature/ 开头的为特性分支, 命名规则: feature/user_module、 feature/cart_module。

4.release分支

  • release 为预上线分支,发布提测阶段,会release分支代码为基准提测。

5.hotfix分支

  • 分支命名:hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似。

  • 线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支。

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

2.12分支命令

  • git branch 查看本地分支

  • git branch -r查看远程分支

  • git branch 分支名称创建分支

    • git checkout -b 分支名称创建并切换到新建分支

  • git checkout 分支名称切换分支

  • git merge 来源分支合并分支

  • git branch -d 分支名称删除分支

    • 分支被合并后才允许删除

    • git branch -D强制删除

  • git branch -m <oldbranch-name> <newbranch-name>重命名分支

  • git add .全部上传到缓存区

    • git add 指定文件指定文件上传到缓存区

2.2 暂时保存更改

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

使用场景:分支临时切换

  • 存储临时改动:git stash

  • 恢复改动:git stash pop

3. GitHub

当和开发团队共享数据时,设置一个远程仓库,可以把它看成一个文件管理服务器,利用这个服务器可以与开发团队的其他成员进行数据交换。

3.1 拉取操作

  • 克隆远端数据仓库到本地:git clone 仓库地址

  • 拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称

3.2 ssh免登录

生成密钥:ssh-keygen

密钥存储目录:C:\Users\lenovo\.ssh

公钥名称:id_rsa.pub

私钥名称:id_rsa

3.3 GIT忽略清单

将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。

git忽略清单文件名称:「.gitignore」

将工作目录中的文件全部添加到暂存区:git add .

看看如何配置该文件信息。👇

# 此行为注释 会被Git忽略

# 忽略 node_modules/ 目录下所有的文件
node_modules


# 忽略所有.vscode结尾的文件
.vscode

# 忽略所有.md结尾的文件
*.md

# 但README.md 除外
!README.md

# 会忽略 doc/something.txt 但不会忽略doc/images/arch.txt
doc/*.txt

# 忽略 doc/ 目录下所有扩展名为txt文件

doc/**/*.txt
  • 40
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 49
    评论
评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小寻己

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

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

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

打赏作者

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

抵扣说明:

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

余额充值