当前位置: 首页 > article >正文

浅显易懂的 git 入门

浅显易懂的 git 入门

课程内容

git

git 介绍

git 的是一个流行和最常用的分布式代码版本管理工具,它可以很方便的帮我们管理代码(记录代码版本信息,回滚代码版本等)和方便团队协作。

使用方式

主要分为两种使用方式

  1. 命令行方式 底层原理
  2. 可视化工具的方式 方便、常用

命令行

该方式主要是通过 在 shell 窗口中,输入 git 相关的命令来实现功能

image-20230220100957647

可视化工具

  1. vscode 自带有 我们学这个

    image-20230220101831389

  2. tortoisegit 小乌龟

    image-20230220101947334

  3. source tree 收费

    image-20230220102107192

下载和安装

下载和安装 git

下载好后,直接双击安装即可

  1. windows

    image-20230220103908145


    在你电脑的空白位置,鼠标右键,如果出现以下提示,表示安装成功

    image-20230221145056461

  2. mac

    image-20230220103953086


    mac 直接打开终端 ,即可使用

git bash 基本使用

  1. ctrl + 滚轮 或者 ctrl + + 可以放大缩小界面

  2. 按下回车表示执行

  3. 复制和粘贴不再是 ctrl + cctrl + v ,可以通过鼠标右键来操作

    image-20230220112311623

  4. 输入clear 表示清空控制台

  5. 当窗口内容太多时

    1. 按下 回车 表示继续查看隐藏内容
    2. 按下 q 表示退出

工作常用流程

查看版本号

git --version

初始化个人信息

一台电脑,只需要初始化信息一次,告诉 git,我们的用户名和邮箱

  1. 查看用户名

    git config --global user.name
    
  2. 查看邮箱

    git config --global user.email
    
  3. 设置用户名

    git config --global user.name "xxx"
    
  4. 设置邮箱

    git config --global user.email "xxx"
    

初始化 git 仓库

git 主要是通过仓库来管理我们的项目代码

  1. 在你的项目文件夹内,打开 git 工具,输入命令来初始化 git 仓库

    git init
    

    image-20230220104926372

  2. 在你的项目内,会多了一个 隐藏文件夹 .git

    image-20230220105023078

代码编辑

模拟真实工作情况,可以在目录内 新建一些文件,简单编辑

image-20230220105253411

查看仓库状态

可以随时通过 查看仓库状态,来获知下一步的操作步骤

git status

image-20230220105625036

添加暂存区

当你仓库内的文件发生修改时(新增、编辑、删除),都需要添加到暂存区

git add .

此时,再次查看仓库状态

image-20230220110039156

提交本地仓库

文件存在暂存区还是不安全的,因为文件需要提交到本地仓库,才算是一个完整的操作,后期才可以实现版本回滚

提交到本地仓库有一个关键信息,需要备注这个版本你做了什么事,如 增加了倒计时功能增加了轮播图效果。一定要有语义,否则不符合公司规范,是个很低级的错误。

git commit -m "首页增加了轮播图"

查看日志

只有做了提交操作,git 仓库中才会存在日志信息。

git log

image-20230220111119779


如果做了版本回退,可以使用

git reflog

相关概念

git 中,存在三个区域和对应的三种文件状态

三个区域
  1. 工作目录 git 仓库管理的目录就叫做工作目录
  2. 暂存区 执行了 git add .后,被编辑的文件就被添加到暂存区中
  3. 本地仓库 执行了 git commit 后,暂存区中的文件就被提交到本地仓库了
三种状态

在 git 仓库中,文件只有三种状态

  1. 已修改(modified) 表示文件做了编辑,但是没有添加到暂存区
  2. 已暂存(staged) 表示文件添加到了暂存区,但是没有提交到本地仓库
  3. 已提交(committed) 表示文件已经提交到本地仓库

img

远程仓库

介绍

远程仓库其实就是本地仓库的一个备份,一般分为两类

  1. 企业中,公司会有自己专门的远程仓库,公司会给我们开发者对应的远程仓库链接的
  2. 互联网上,我们自己也可以使用免费的远程仓库,方便自己使用或者方便和网友沟通交流
    1. 码云 国内
    2. github 全球

准备工作

实际工作中都会有项目组长提前完成

  1. 注册账号
  2. 新建远程仓库

image-20230220155236339


创建成功

image-20230220155318994

克隆远程仓库

实际工作中,项目组长会直接发给我们一个 远程仓库地址

我们现在自己 复制一下 刚才新建好的远程仓库地址

image-20230220155437327

打开 git 窗口,输入命令,进行克隆 (clone)

git clone https://gitee.com/ukSir/web007.git

如果是私密仓库,则会弹出提示 要求填写你远程仓库(码云)的账号和密码。

推送到远程仓库

本地仓库仓库的代码 推送到远程仓库

当我们克隆下来的仓库中的代码进行过编辑后

需要注意的是: 不要出现代码写了一半,没有提交代码就推送更新

git push

此时,刷新码云上的网页,即可看到你所上传的代码。

image-20230220162415733

拉取更新

团队协作过程中,我们想要获取到远程仓库上别人推送上去的新代码,就可以使用 拉取更新

需要注意的是: 不要出现代码写了一半,没有提交代码就拉取更新

git pull

远程仓库补充

查看添加的远程仓库地址

可以看到本地仓库中已经建立了的远程仓库的链接信息

git remote -v

image-20230220164341123

添加远程仓库地址

一个本地仓库,可以对应多个远程仓库地址,但是一般都是 1 对 1

git remote add 变量名  远程仓库地址
  1. 变量名 可以自己取
  2. 远程仓库地址 可以自己新建

推送到远程仓库

如果延续上一个步骤,我们直接推送代码,会出现问题

image-20230220165248631

此时要使用上个知识点,添加远程仓库地址

git remote add origin git@gitee.com:ukSir/web008.git

然后指定仓库名称并且指定分支开始推送

git push --set-upstream origin master
  1. --set-upstream 表示将本地分支 master 推送到 远程仓库 master分支上

    只要成功推送过一次后,后期又可以直接使用 git push 进行推送了

  2. master 本地仓库中的默认分支

撤销

分为两种

  1. 将未添加到暂存区的代码全部撤销
  2. 把添加到暂存区中的代码进行撤销

把未添加到暂存区的代码全部撤销

git checkout .

把暂存区中的代码撤销到工作区

git reset .

把暂存区中的代码全部撤销

git reset --hard

回滚

可以实现代码时光穿梭,将你的代码还原到某一个版本

需要注意的是: 不要出现代码写了一半,就进行代码的回滚

  1. 先查看日志,获取版本 ID

    git log
    

    image-20230220174718408

  2. 执行回滚

    git reset --hard 版本ID
    

分支

git 在运作的时候都是基于分支的,分支可以理解为就是项目代码的一个备份

作用

我们可以建立多个分支,分支的名称可以自定义。如

  1. 主分支 表示线上稳定运行的代码
  2. dev 分支 表示开发状态下,每一个成员都是在 dev 分支下工作,这样哪怕出现事故,也不会影响到主分支
  3. 测试分支 表示代码开发完毕,测试人员和开发人员在测试分支下进行修复 bug。
  4. 自己名称命名的分支 表示团队开发中,每一个人都可以使用 自己名称来开设一个分支,然后在此分支上进行开发。

功能

在 git 中,常见的分支功能主要有

  1. 查看分支

    git branch
    
  2. 创建分支

    git branch 分支名称
    
  3. 切换分支

    git checkout 分支名称
    
  4. 创建并切换分支

    git checkout -b 分支名称
    
  5. 合并分支

    把 dev 分支合并到 master 分支上

    需要注意的是: 不要出现代码写了一半,就进行分支的合并

    1. 先切换回主分支

      git checkout master
      
    2. 然后再合并分支

      git merge dev
      
  6. 删除分支

    git branch -d 分支名称
    
  7. 克隆指定远程仓库的某个分支

    git clone -b 远程仓库上的分支名称 远程仓库地址
    
  8. 将本地某个分支推送到远程仓库对应的分支上

    1. 在本地仓库中先切换分支

    2. 开始推送

      git push --set-upstream 本地仓库中记录的远程仓库的别名 分支名称
      

      或者

      git push
      

团队协作

行业通用解决方案

GitFlow、GitHubFlow 以及 GitLabFlow

Git 工作流中常见的三种分支策略:GitFlow、GitHubFlow 以及 GitLabFlow

常规工作流程

2023年2月21日 08_09_04

冲突

冲突是一种现象:在 git 中进行文件的更新中或者合并中,如果发现同一时刻,同一位置进行了修改,那么就会出现冲突

一般来说,出现冲突的场景主要有以下两种:

  1. 分支合并时
  2. 拉取更新时

分支合并-冲突

如果两个分支,同一时刻修改了同一文件的同一位置,那么在做分支合并时,就会出现冲突。

2023-2-21 14_29_34

解决冲突

手动修改要调整的代码,然后执行 git add git commit 、 即可

拉取更新-冲突

2023-2-21 14_41_23

解决冲突

手动修改要调整的代码,然后执行 git add git commit 、 即可

commit 风格

企业开发中,我们提交 commit 的日志 格式也是有要求的,目前一般是参考 angular 推出的规范。

git commit -m [type](scope):备注信息

type 操作类型

用来描述本次 commit 主要的用途

类型说明
feature 简写: feat开发新功能
fix修复 bug
docs仅修改了文档,如 readme.md
style仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。
refactor代码重构,没有新增功能或修复 bug
perf优化相关,如提升性能、用户体验等。
test测试用例,包括单元测试、集成测试。
chore改变构建流程、或者增加依赖库、工具等。
revert版本回滚

示例

git commit -m feat:实现登录

scope 受影响的文件-可选

用于说明 本次 commit 影响的范围,比如: views, component, utils, test…

git commit -m feat(index.html):实现登录

vscode 可视化 操作 git

初始化 git 仓库

如果你的仓库是克隆远程仓库的,则不需要进行这一步操作

  1. 使用 vscode 打开一个没有 git 管理的文件夹

  2. 点击按钮即可完成初始化 git init

    image-20230221152940949

添加到暂存区&提交本地仓库

image-20230221153648704

添加远程仓库地址

如果你的仓库是克隆远程仓库的,则不需要进行这一步操作

image-20230221153801793


image-20230221153851518


image-20230221153916734


image-20230221154135712

推送到远程仓库

image-20230221154243065


后期再推送

image-20230221154407274

拉取更新

image-20230221154441500

忽略清单

在 git 仓库中,可能存在一些文件不想要被 git 所管理,不需要进行团队共享。此时可以在忽略清单中添加忽略。

忽略清单的文件夹名是固定的,必须是 .gitignore, 然后在里面添加要被忽略掉文件即可

需要注意的是,一般情况下,在初始化 git 仓库的时候,忽略清单也应该同时创建

.gitignore

## 忽略 1.txt 文本
1.txt

## 忽略后缀名为 mp4 的文件
*.mp4

## 忽略文件夹

vscode/

git 相关插件

  1. GitLens — Git supercharg 方便查看文件编辑历史 和 操作 git 其他功能

    image-20230221154526705

  2. Git History,方便查看文件历史信息

    image-20230221154752840

SSH 补充

一些电脑系统在使用码云的时候,没有自动记录密码功能,就可能会出现频繁要求添加账号和密码的问题。 这个时候可以通过设置 ssh 来解决。


http://www.kler.cn/a/460134.html

相关文章:

  • Dell服务器升级ubuntu 22.04失败解决
  • 【SpringBoot】多数据源事务卡死@DSTransactional,当某一个数据库挂掉了,系统卡死问题解决
  • LinuxC高级day5
  • C#编写的盘符图标修改器 - 开源研究系列文章
  • 【第二部分--Python之基础】03 容器类型的数据
  • 2024年12月个人工作生活总结
  • 电池放电仪在各领域的作用
  • android——屏幕适配
  • 【Flink运行时架构】系统构架
  • 咚次游戏加速1.1.4.2 | 免费PC游戏加速器,支持1473款游戏加速
  • 如何初始化css样式?为什么要初始化css?
  • python-LeetCode-两数之和
  • Spring Boot缓存预热实战指南
  • .net core 的字符串处理
  • 三大行业案例:AI大模型+Agent实践全景
  • 美畅物联丨视频上云网关获取视频流地址供第三方调用的方法
  • 【论文阅读笔记】IC-Light
  • 电子电器架构 ---什么是智能电动汽车上的逆变器?
  • 极品飞车6的游戏手柄设置
  • 【Leetcode 每日一题 - 扩展】面试题 04.10. 检查子树
  • FreeSWITCH 简单图形化界面38 - 使用uniapp中使用JsSIP进行音视频呼叫
  • Windows11家庭版 Docker Desktop 的安装历程
  • VITUREMEIG | AR眼镜 算力增程
  • 你了解DNS吗?
  • 让每一条数据发光:Grafana 打造的现代化仪表盘
  • 多分类的损失函数