前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >浅显易懂的 git 入门

浅显易懂的 git 入门

作者头像
万少
发布2025-02-10 12:47:49
发布2025-02-10 12:47:49
10900
代码可运行
举报
运行总次数:0
代码可运行

浅显易懂的 git 入门

[TOC]

git 介绍

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

使用方式

主要分为两种使用方式

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

命令行

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

image-20230220100957647
image-20230220100957647

可视化工具

  1. vscode 自带有 我们学这个
image-20230220101831389
image-20230220101831389
  1. tortoisegit 小乌龟
image-20230220101947334
image-20230220101947334
  1. source tree 收费
image-20230220102107192
image-20230220102107192

下载和安装

下载和安装git

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

  1. windows
image-20230220103908145
image-20230220103908145

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

image-20230221145056461
image-20230221145056461
  1. mac
image-20230220103953086
image-20230220103953086

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

git bash 基本使用

  1. 按下回车表示执行
  2. 复制和粘贴不再是 ctrl + cctrl + v ,可以通过鼠标右键来操作
image-20230220112311623
image-20230220112311623
  1. 输入clear 表示清空控制台
  2. 当窗口内容太多时
    1. 按下 回车 表示继续查看隐藏内容
    2. 按下 q 表示退出

工作常用流程

查看版本号

代码语言:javascript
代码运行次数:0
复制
git --version 

初始化个人信息

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

查看用户名

代码语言:javascript
代码运行次数:0
复制
git config --global user.name 

查看邮箱

代码语言:javascript
代码运行次数:0
复制
git config --global user.email 

设置用户名

代码语言:javascript
代码运行次数:0
复制
git config --global user.name "xxx" 

设置邮箱

代码语言:javascript
代码运行次数:0
复制
git config --global user.email 

初始化git仓库

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

  1. 在你的项目文件夹内,打开 git 工具,输入命令来初始化git仓库
image-20230220104926372
image-20230220104926372
  1. 在你的项目内,会多了一个 隐藏文件夹 .git
image-20230220105023078
image-20230220105023078

代码编辑

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

image-20230220105253411
image-20230220105253411

查看仓库状态

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

image-20230220105625036
image-20230220105625036

添加暂存区

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

代码语言:javascript
代码运行次数:0
复制
git add . 

此时,再次查看仓库状态

image-20230220110039156
image-20230220110039156

提交本地仓库

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

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

代码语言:javascript
代码运行次数:0
复制
git commit -m "首页增加了轮播图"

查看日志

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

代码语言:javascript
代码运行次数:0
复制
git log 
image-20230220111119779
image-20230220111119779

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

代码语言:javascript
代码运行次数:0
复制
git reflog 

相关概念

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

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

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

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

远程仓库

介绍

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

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

准备工作

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

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

创建成功

image-20230220155318994
image-20230220155318994

克隆远程仓库

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

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

image-20230220155437327
image-20230220155437327

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

代码语言:javascript
代码运行次数:0
复制
git clone https://gitee.com/ukSir/web007.git

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

推送到远程仓库

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

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

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

代码语言:javascript
代码运行次数:0
复制
git push 

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

image-20230220162415733
image-20230220162415733

拉取更新

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

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

代码语言:javascript
代码运行次数:0
复制
git pull 

远程仓库补充

查看添加的远程仓库地址

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

代码语言:javascript
代码运行次数:0
复制
git remote -v 
image-20230220164341123
image-20230220164341123

添加远程仓库地址

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

代码语言:javascript
代码运行次数:0
复制
git remote add 变量名  远程仓库地址
  1. 变量名 可以自己取
  2. 远程仓库地址 可以自己新建

推送到远程仓库

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

image-20230220165248631
image-20230220165248631

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

代码语言:javascript
代码运行次数:0
复制
git remote add origin git@gitee.com:ukSir/web008.git

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

代码语言:javascript
代码运行次数:0
复制
git push --set-upstream origin master
  1. --set-upstream 表示将本地分支 master 推送到 远程仓库 master分支上 只要成功推送过一次后,后期又可以直接使用 git push 进行推送了
  2. master 本地仓库中的默认分支

撤销

分为两种

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

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

代码语言:javascript
代码运行次数:0
复制
git checkout . 

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

代码语言:javascript
代码运行次数:0
复制
git reset . 

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

代码语言:javascript
代码运行次数:0
复制
git reset --hard 

回滚

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

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

先查看日志,获取版本ID

代码语言:javascript
代码运行次数:0
复制
git log 
image-20230220174718408
image-20230220174718408

执行回滚

代码语言:javascript
代码运行次数:0
复制
git reset --hard 版本ID

分支

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

作用

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

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

功能

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

查看分支

代码语言:javascript
代码运行次数:0
复制
git branch 

创建分支

代码语言:javascript
代码运行次数:0
复制
git branch 分支名称

切换分支

代码语言:javascript
代码运行次数:0
复制
git checkout 分支名称

创建并切换分支

代码语言:javascript
代码运行次数:0
复制
git checkout -b 分支名称

合并分支

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

先切换回主分支

代码语言:javascript
代码运行次数:0
复制
git checkout master

然后再合并分支

代码语言:javascript
代码运行次数:0
复制
git merge dev 

删除分支

代码语言:javascript
代码运行次数:0
复制
git branch -d 分支名称

克隆指定远程仓库的某个分支

代码语言:javascript
代码运行次数:0
复制
git clone -b 远程仓库上的分支名称 远程仓库地址

克隆远程分支到本地某个分支上

代码语言:javascript
代码运行次数:0
复制
git clone -b 远程仓库上的分支名称 远程仓库地址

将本地某个分支推送到远程仓库对应的分支上

在本地仓库中先切换分支

开始推送

代码语言:javascript
代码运行次数:0
复制
git push --set-upstream 本地仓库中记录的远程仓库的别名 分支名称

团队协作

行业通用解决方案

GitFlow、GitHubFlow以及GitLabFlow

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

常规工作流程

2023年2月21日 08_09_04
2023年2月21日 08_09_04

冲突

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

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

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

分支合并-冲突

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

2023-2-21 14_29_34
2023-2-21 14_29_34
解决冲突

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

拉取更新-冲突

2023-2-21 14_41_23
2023-2-21 14_41_23
解决冲突

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

commit 风格

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

代码语言:javascript
代码运行次数:0
复制
git commit -m [type](scope):备注信息

type 操作类型

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

类型

说明

feature 简写: feat

开发新功能

fix

修复 bug

docs

仅修改了文档,如readme.md

style

仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。

refactor

代码重构,没有新增功能或修复bug

perf

优化相关,如提升性能、用户体验等。

test

测试用例,包括单元测试、集成测试。

chore

改变构建流程、或者增加依赖库、工具等。

revert

版本回滚

示例

代码语言:javascript
代码运行次数:0
复制
git commit -m feat:实现登录

scope 受影响的文件-可选

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

代码语言:javascript
代码运行次数:0
复制
git commit -m feat(index.html):实现登录

忽略清单

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

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

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

.gitignore

代码语言:javascript
代码运行次数:0
复制
## 忽略 1.txt 文本
1.txt

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

## 忽略文件夹

vscode/ 

vscode 可视化 操作git

初始化git仓库

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

  1. 使用vscode打开一个没有git管理的文件夹
  2. 点击按钮即可完成初始化 git init
image-20230221152940949
image-20230221152940949

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

image-20230221153648704
image-20230221153648704

添加远程仓库地址

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

image-20230221153801793
image-20230221153801793

image-20230221153851518
image-20230221153851518

image-20230221153916734
image-20230221153916734

image-20230221154135712
image-20230221154135712

推送到远程仓库

image-20230221154243065
image-20230221154243065

后期再推送

image-20230221154407274
image-20230221154407274

拉取更新

image-20230221154441500
image-20230221154441500

git 相关插件

  1. GitLens — Git supercharg 方便查看文件编辑历史 和 操作git其他功能
image-20230221154526705
image-20230221154526705
  1. Git History,方便查看文件历史信息
image-20230221154752840
image-20230221154752840

SSH 补充

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

www.yuque.com/budongxians…

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 浅显易懂的 git 入门
    • git 介绍
      • 使用方式
      • 命令行
      • 可视化工具
    • 下载和安装
      • 下载和安装git
      • git bash 基本使用
    • 工作常用流程
      • 查看版本号
      • 初始化个人信息
      • 初始化git仓库
      • 代码编辑
      • 查看仓库状态
      • 添加暂存区
      • 提交本地仓库
      • 查看日志
      • 相关概念
    • 远程仓库
      • 介绍
      • 准备工作
      • 克隆远程仓库
      • 推送到远程仓库
      • 拉取更新
    • 远程仓库补充
      • 查看添加的远程仓库地址
      • 添加远程仓库地址
      • 推送到远程仓库
    • 撤销
      • 把未添加到暂存区的代码全部撤销
      • 把暂存区中的代码撤销到工作区
      • 把暂存区中的代码全部撤销
    • 回滚
    • 分支
      • 作用
      • 功能
    • 团队协作
      • 行业通用解决方案
      • 常规工作流程
    • 冲突
      • 分支合并-冲突
      • 拉取更新-冲突
    • commit 风格
      • type 操作类型
      • scope 受影响的文件-可选
    • 忽略清单
    • vscode 可视化 操作git
      • 初始化git仓库
      • 添加到暂存区&提交本地仓库
      • 添加远程仓库地址
      • 推送到远程仓库
      • 拉取更新
    • git 相关插件
    • SSH 补充
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档