Skip to content

Git 入门与本地仓库(一) ​

本页对应 Git 入门与本地仓库,共 7 段视频,约 1 小时 7 分。

学习目标 ​

  • 能完成 Git 安装,并通过 git --version 或右键菜单验证安装成功。
  • 能使用 git config --global 配置用户名和邮箱,并通过 git config --global --list 查看配置结果。
  • 能在本地目录执行 git init 初始化仓库,并通过显示隐藏文件确认 .git 目录生成。
  • 能使用 git status、git add .、git commit -m "信息" 完成文件暂存与提交,并正确区分已修改、已暂存、无待提交三种状态。
  • 能使用 git log、git log --oneline、git reflog 查看历史版本,并使用 git reset --hard 版本号 回退后验证文件状态变化。
  • 能创建并配置 .gitignore 文件,验证指定文件被 Git 忽略且不会进入暂存区。

知识点 ​

先明确:这一步是在为后面的 Git 配置做准备 ​

为什么需要: 本节不是孤立地“注册一个网站”,而是因为后面 Git 设置里会用到 gitee 的注册信息。转写稿里配置用户信息时反复强调:提交代码时要能看出“谁提交了什么信息”,所以用户名和邮箱不是随便填的,建议使用自己 Gitee 注册时的用户名和邮箱。
怎么想: 先把账号准备好,并且一定要完成邮箱验证;否则后面配置 Git 时,邮箱信息不完整或不准确,提交记录里的作者信息就不可靠。
怎么做: 打开 Gitee 码云:https://gitee.com/,按笔记完成注册、登录、绑定邮箱,最后记住自己的邮箱和用户名。
易错点: 不要把这步当成“随便注册完就行”。笔记明确要求记住邮箱和用户名,因为后面 Git 配置要用;转写稿也提醒,去了公司后邮箱可能会换成公司邮箱,但现在学习阶段先用自己 Gitee 的注册信息。

传送门:

  1. gitee(码云):https://gitee.com/

注册账号:姓名位置填的是昵称,不是真实姓名 ​

为什么需要: 注册是获取 Gitee 账号的第一步。没有账号,就无法登录、绑定邮箱,也无法在后续 Git 配置中对应到自己的提交信息。
怎么想: 笔记特意标注“姓名部分是昵称,不是真实姓名”,说明这里容易误解。注册页面上的“姓名”不是让你填身份证上的真实姓名,而是展示用的昵称。
怎么做: 打开 Gitee 后,点击右上角的注册,按页面提示完成注册。填写时注意“姓名”部分填昵称,不要当成真实姓名来填。
易错点: 把昵称当成真实姓名填,或者反过来以为必须填真名。按笔记要求:这里是昵称,不是真实姓名。注册完成后还要继续登录并绑定邮箱,不要注册完就关掉页面。

Gitee 注册入口与昵称填写示意

登录后绑定邮箱:看到成功提示才算完成 ​

为什么需要: 笔记把“注册+验证邮箱”放在一起,说明只注册不验证是不完整的。后面 Git 提交信息会使用邮箱,邮箱没有绑定或没有验证,会影响信息对应。
怎么想: 注册完成后先登录,登录后注意屏幕右上角的提示。笔记里说会出现提示,点击添加绑定,然后进入邮箱的新增和验证流程。
怎么做: 注册完毕之后登录,屏幕右上角出现提示时,点击添加绑定;在跳转页面完成邮箱的新增+验证操作;看到绑定成功提示后,再继续下一步。
易错点: 只点了“添加绑定”但没有完成验证;或者没有看到成功提示就以为已经绑定好了。笔记第 4 步明确说:看到如下提示,说明绑定成功。要以成功提示为准。

登录后点击添加绑定邮箱

新增并验证邮箱的操作页面

邮箱绑定成功提示

记住用户名和邮箱:后面 Git 配置要直接使用 ​

为什么需要: 笔记最后一条是“记住自己 gitee 的邮箱和用户名”。转写稿里讲配置用户信息时说得很清楚:配置用户名和邮箱,是为了每次 Git 提交时知道是谁提交的;并且建议使用 Gitee 注册时的用户名和邮箱。
怎么想: 现在先把信息记下来,后面配置 Git 时就不用临时去找。转写稿还提到,可以在个人中心、个人首页或设置里的个人资料中查看用户名和绑定邮箱;忘记时可以回到网站查看。
怎么做: 注册和邮箱验证完成后,把自己的 Gitee 用户名、绑定邮箱记录下来。后面做 Git 配置时,用户名和邮箱要与这里保持一致。
易错点: 把登录密码当成要记录的信息,或者只记邮箱不记用户名;也有人把昵称、用户名、邮箱混为一谈。本节要求记住的是 gitee 的邮箱和用户名。另外,转写稿提到 Git 配置成功时可能没有提示,错误才提示,但那是后续 Git 配置的注意点,不要和 Gitee 邮箱绑定成功提示混在一起。

本节完成标准与检查 ​

为什么需要: 准备工作如果没有检查,后面配置 Git 时才发现邮箱没验证、用户名记错,会反复返工。
怎么想: 按笔记的 5 个步骤逐项核对:是否点击右上角注册、昵称是否填对、是否登录后点击添加绑定、是否完成邮箱新增和验证、是否看到绑定成功提示、是否记住邮箱和用户名。
怎么做: 完成后重新登录一次 Gitee,确认账号能正常进入;确认邮箱绑定成功;把用户名和邮箱单独记到笔记里。
易错点: 不要编造或跳过验证步骤;以页面实际提示和笔记中的成功提示为准。本节只要求完成 Gitee 注册和邮箱验证,后续 Git 远程仓库的具体使用按“10.Git远程仓库-概念和gitee使用准备”继续学习。

一、版本控制与 Git 的作用 ​

为什么需要:写代码时,文件会不断修改;多人协作时,还要把首页、注册页等不同文件合并到一起。转写稿里举了一个很直观的例子:没有版本控制时,只能让同事把文件发给你,再让对方站在旁边告诉你“这段有用、那段没用”,然后你手动删除。这个过程效率低,也容易删错。所以需要一种系统来记录文件变化,必要时还能回到过去某个状态。

怎么想:先把 Git 理解成“版本控制系统”,不要一上来就记命令。笔记给的定义是:版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。它的作用可以拆成三件事:记录项目文件变化、查看记录信息、把文件切换到记录时的状态。也就是说,Git 既帮你“存历史”,也帮你“看历史”,还给你“后悔的机会”。

怎么做:学习时先记住这三个作用,再进入演示。参考链接可看:关于版本控制。真正操作时,先在一个已经被 Git 管理过的项目里观察提交记录和版本切换,不要急着背所有命令。

易错点:不要把 Git 当成“网盘”或“普通备份”。它管理的是版本变化;也不要把“记录变化”理解成只记录最终文件。转写稿强调,今天的重点先是认识和安装,命令后面再逐步学。

二、用演示理解“查看”和“切换” ​

为什么需要:只背“记录、查看、切换”三个词很抽象。转写稿用素材中的 01.认识及安装Git 演示:先提交一次,再删掉页面上的按钮,再次提交;此时想回到删按钮之前的状态,就可以用 Git 回退。这个演示能让你理解 Git 的价值:关闭文件再打开后,普通撤销往往回不去,但 Git 可以切换到记录过的版本。

怎么想:把操作分成两步:先“看有哪些版本”,再“选一个版本号切换过去”。查看用 git log --oneline,它会把提交记录压缩成一行,便于找版本号;切换用 git reset --hard 版本号,执行后工作区文件会回到该版本状态。转写稿中回退后按钮重新出现,说明切换生效。

怎么做:在演示目录中执行:

bash
git log --oneline #查看
git reset --hard 版本号 #切换

先复制第一次提交的版本号,再执行回退命令。注意在 Git Bash 中复制粘贴通常用右键,不要习惯性按 Ctrl+C、Ctrl+V。

版本控制演示截图

易错点:版本号不要抄错;--hard 会直接改变工作区文件,初学演示时要在素材目录里操作,不要拿重要项目练手。转写稿还提醒:git log 能看到提交人、邮箱等信息,所以后面才需要配置用户信息;但本节先掌握查看和切换即可。

三、Windows 安装 Git ​

为什么需要:Git 不是系统自带工具,必须先安装,才能在文件夹里使用 Git Bash 和 Git 命令。安装不对,后面初始化仓库、提交代码都会受影响。

怎么想:Windows 安装的核心是:下载对应系统位数的安装包,双击安装,尽量使用默认设置,安装后用右键菜单验证。转写稿特别强调“不要安装在中文目录”,这是为了避免路径问题。

怎么做:打开下载地址:https://git-scm.com/download/win ,根据自己的电脑版本下载 32 位或 64 位安装包。双击安装,选择默认设置一路下一步。安装完成后,在任意文件夹下鼠标右键,能看到 Git Bash here,就说明安装成功。

Windows 下载页面截图

Git Bash here 右键菜单截图

易错点:不要装在中文目录;不要随意改一堆安装选项,初学用默认设置即可;验证时看的是右键菜单里的 Git Bash here,不是只看安装程序是否结束。

四、macOS 安装 Git ​

为什么需要:macOS 上同样需要安装 Git,才能使用终端里的 Git 命令。不同系统的安装包和验证方式不同,所以要分开处理。

怎么想:macOS 也是先下载、再安装,安装后打开“终端”,输入版本命令验证。转写稿提到,macOS 可能遇到“无法安装/安全性提示”,此时要到“设置 → 隐私与安全性”里选择“仍要打开”,再继续安装。

怎么做:打开 https://git-scm.com/download/mac ,下载安装包,全部使用默认设置安装。若出现拦截提示,进入“设置 → 隐私与安全性 → 仍要打开”,然后再次安装。安装完成后打开终端,输入:

bash
git --version

看到版本号提示,就说明安装成功。

macOS 下载页面截图

macOS 安装包截图

macOS 安全性与隐私提示截图

macOS 终端验证截图

易错点:不要看到安全提示就以为安装包坏了;验证要在“终端”里执行 git --version,不是随便打开一个文件;命令中的空格和两个短横线不能少。转写稿还提醒:Git 中成功操作常常没有提示,错误才提示,所以验证时要看实际输出,不要凭“没报错”猜测。

为什么要先配置用户信息 ​

安装完 Git 后,第一件事不是急着建仓库,而是配置用户名和邮件地址。原因是:Git 的每一次提交都会记录“是谁提交了什么”。以后你到公司里做首页、登录页,代码最终都要提交到仓库;如果没有配置用户信息,提交记录里就无法清楚标识提交者。转写稿里也强调:配置用户信息就是“给每次 Git 提交来用”,提交时要能知道谁提交了什么。

这里要建立一个正确认识:用户名和邮箱建议使用你 Gitee 注册时使用的用户名和邮箱。现在学习阶段用自己的账号;以后进公司后,可能会改成公司邮箱,所以它不是“配一次永远不变”,而是按使用环境配置。配置命令本身是固定的:英文、空格、符号都不能随意改;字符串类的中文内容才是你要替换的部分。

打开正确的终端 ​

为什么需要:Git 命令要在终端里执行,Windows 和 macOS 打开的入口不同。
怎么想:Windows 用户打开 Git Bash;macOS 用户打开“终端”。位置可以是任意位置。
怎么做:Windows 在任意位置打开 Git Bash;macOS 在任意位置打开 终端。
易错点:不要把“Git Bash”写成普通命令;也不要以为必须在项目文件夹里才能配置用户信息。配置用户信息是全局配置,和当前所在目录关系不大。

配置用户名和邮箱 ​

为什么需要:让每次提交带上作者信息。
怎么想:先配用户名,再配邮箱;两条命令都使用 --global,表示全局配置。
怎么做:在终端中输入下面的命令。注意 # 部分是注释,复制时不要复制注释。

bash
# 配置用户名
git config --global user.name "gitee注册的用户名"
# 配置邮箱
git config --global user.email gitee配置的邮箱
# 查看配置
git config --list

转写稿里的实际操作过程是:从笔记中复制命令时,不要复制 # 注释;粘贴到 Git Bash 里一般用右键粘贴。命令中该有空格的地方必须有空格,比如 user.name 后面要空一格再写用户名。演示时配置成功后终端没有提示——Git 往往是“错误优先”,成功时可能什么都不显示,不要因为没提示就以为失败了。

易错点:

  1. git config --global user.name 和 git config --global user.email 中的空格不能少。
  2. 用户名建议加引号;邮箱按笔记写法填写。
  3. 不要写成 get,命令是 git。
  4. 不要把注释也粘进去。
  5. 如果用户名写错了,不必慌,重新执行一遍配置命令覆盖即可;可以用键盘上、下键调出历史命令再修改。

查看配置与退出分页 ​

为什么需要:确认用户名和邮箱到底有没有配置成功。
怎么想:用 git config --list 以列表形式查看配置项。
怎么做:执行:

bash
git config --list

如果配置信息太多,终端出现冒号 :,说明进入了分页显示。此时输入英文 q 退出。转写稿里特别提醒:是在出现冒号的情况下按 q;如果没有出现冒号,说明内容已经显示完了。查看时重点找 user.name 和 user.email 两项,确认值是否正确。

易错点:不要按 Ctrl+C 乱退出;看到冒号按 q。如果发现自己配置的邮箱或用户名不对,重新执行对应配置命令即可覆盖。

终端使用补充 ​

为什么需要:后面会频繁使用终端,熟悉小技巧能提高效率。
怎么想:历史命令可以复用,路径和命令可以补全,屏幕乱了可以清屏。
怎么做:

  • 按上、下方向键切换历史命令;
  • Tab 键可以给出提示或补全,但通常需要先输入一些内容才有提示;
  • 输入 clear 可以清屏。

易错点:Tab 不是任何情况下都直接弹出完整答案;历史命令调出来后要检查内容再回车,避免把旧命令误执行。

本节小结 ​

配置用户信息是 Git 的第一课:用 git config --global user.name 配用户名,用 git config --global user.email 配邮箱,用 git config --list 查看;信息太多出现冒号时按 q 退出。Windows 打开 Git Bash,macOS 打开终端。记住:命令固定、空格严格、成功可能无提示,配错了重新执行覆盖即可。

为什么需要本地初始化 Git 仓库 ​

为什么需要:Git 要管理代码,必须先有一个“仓库”。仓库不是随便一个文件夹,而是带有版本管理信息的目录。只有初始化后,Git 才能记录修改、暂存和提交。

怎么想:获取 Git 仓库通常有两种方式:一是把“尚未进行版本控制”的本地目录转成 Git 仓库;二是从其他服务器克隆一个已存在的 Git 仓库。转写稿也说明:以后进公司更常见的是克隆已有项目,但今天先学第一种——本地初始化。参考文档:Git 基础-获取 Git 仓库。

怎么做:先准备一个专门放项目的文件夹,再在这个文件夹里执行初始化命令。

易错点:不要以为“装了 Git”就等于“这个文件夹已经是仓库”;仓库必须在目标目录中初始化出来。

在目标文件夹中打开终端 ​

为什么需要:git init 会把“当前所在目录”变成仓库根目录。如果终端打开的位置不对,仓库就会初始化到别处。

怎么想:先进入目标文件夹,再从这个文件夹打开 Git Bash 或终端,这样当前路径就是项目根目录。

怎么做:

  1. 创建新文件夹并进入该文件夹。
  2. Windows:在文件夹中点击鼠标右键,选择 git bash here 打开。
  3. macOS:在文件夹上点击鼠标右键,选择“新建位于文件夹位置的终端窗口”。

macOS 在文件夹位置新建终端窗口

易错点:不要先随便打开一个终端再凭感觉执行命令;执行前应确认终端当前目录就是你要管理的项目文件夹。

执行 git init 初始化仓库 ​

为什么需要:初始化的作用是在当前目录建立 Git 的版本管理结构,让这个普通文件夹变成 Git 仓库。

怎么想:转写稿中演示时先新建了“03本地仓库代码”文件夹,在文件夹下打开 Git Bash,然后输入初始化命令。命令本身很短,关键是路径要对。

怎么做:在终端输入:

bash
git init

看到类似“已初始化空的 Git 仓库”或“Initialized empty Git repository”的输出,就说明初始化成功。

git init 初始化成功输出

易错点:成功输出里通常会带一个路径,要顺手核对这个路径是不是你的目标文件夹。路径不对,说明终端打开位置错了。

重复执行 git init 会怎样 ​

为什么需要:实际学习中很容易在同一个文件夹里再次输入 git init,需要知道这是正常现象还是错误。

怎么想:笔记明确说“重复输入会有提示”。这不是把项目弄坏了,而是在告诉你:这个目录已经是 Git 仓库,Git 重新初始化了已有仓库信息。

怎么做:再次执行:

bash
git init

会看到重新初始化的提示。

重复执行 git init 的提示

易错点:看到提示不要慌,也不要因此手动删除文件;关键是确认当前目录仍然正确。平时不需要反复初始化同一个仓库。

检查隐藏的 .git 文件夹 ​

为什么需要:判断一个文件夹是不是 Git 仓库,不能只看有没有代码文件,而要看里面有没有 .git 文件夹。转写稿强调:只有有了 .git 文件的文件夹才能称为 Git 仓库,它存储版本信息。

怎么想:.git 默认是隐藏文件夹,所以初始化成功后直接看可能看不到。需要让系统显示隐藏文件。

怎么做:

  • Windows:在文件夹上方点击“查看”,勾选“隐藏的项目”。
  • macOS:使用快捷键 Command + Shift + . 切换隐藏文件显示。

显示后应能看到 .git 文件夹。

显示隐藏的 .git 文件夹

易错点:.git 文件夹不要改动、不要删除。转写稿特别提醒:如果删了它,版本信息就没了。初始化后看不到 .git,先检查隐藏文件是否显示,不要立刻重复乱操作。

小结:本地初始化的判断标准 ​

为什么需要:这一节的最终目标不是“敲过一次命令”,而是确认当前目录已经成为可用的 Git 仓库。

怎么想:按“进入目标文件夹 → 打开终端 → 执行 git init → 看成功输出 → 检查 .git”的顺序验证。

怎么做:记住核心命令是 git init;核心标志是目标文件夹中出现隐藏的 .git 文件夹。

易错点:终端位置错、隐藏文件没显示、误删或修改 .git,是最常见的三个问题。克隆远程仓库是另一种获取仓库的方式,本节先掌握本地初始化即可。

先理解:为什么要“记录每次更新到仓库” ​

Git 的价值不是“把文件放进文件夹”,而是把一次阶段性的成果记录成一个可查看、可回退的版本。转写稿里演示过一个场景:删掉页面上的按钮后关闭窗口,再打开时已经无法靠撤销恢复;这时可以通过提交历史找到之前的版本并回退。这说明每次提交都像一个“存档点”。

所以本节的核心不是背命令,而是建立节奏:工作区开发 → 添加到暂存区 → 提交到版本库。每当完成一个阶段目标,就把这次变化记录下来。

工作区、暂存区与版本库示意图

工作区开发:先完成一个明确的小目标 ​

为什么需要:如果所有文件都改完才提交,提交记录会非常混乱,出了问题也很难判断是哪一步造成的。

怎么想:把需求拆成小阶段。笔记中的需求是“实现页面效果,并用 Git 记录每一次操作”,参考步骤已经拆成:创建首页并添加结构、创建 CSS 并编写样式、创建 JS 并编写逻辑。

怎么做:在上一节创建的文件夹内开发,先完成当前阶段要做的文件内容,不要急着提交。

易错点:不要离开仓库目录开发;不要一次改太多再提交。提交前要先确认自己当前完成的是哪一个阶段。

需求页面效果

添加到暂存区:用 git add 选择这次要记录的内容 ​

为什么需要:暂存区让你先“挑选”这次要提交的修改,而不是把所有变化不加区分地塞进版本库。

怎么想:完成一个阶段后,先把相关修改添加到暂存区;确认无误后再提交。

怎么做:本节笔记给出的命令是:

bash
# 添加到暂存区
git add .
# 记录到版本库
git commit -m"信息"

其中 git add . 表示把当前目录下的修改添加到暂存区。转写稿也提到,添加某个文件可以用 git add 文件名,但更常用的是 git add .。

易错点:add 后面有一个点,表示当前目录;不要把“添加到暂存区”误认为“已经提交到版本库”。另外,提交前要配置好用户名和邮箱,因为转写稿明确说提交记录要能看出“谁提交了什么”。

提交到版本库:用 git commit -m 形成版本记录 ​

为什么需要:只有 commit 之后,这次修改才真正进入版本库,成为历史记录中的一个节点。

怎么想:提交信息要写清楚“这次完成了什么”,而不是只写无意义的字符。笔记中的格式是 git commit -m"信息",引号里的“信息”就是提交说明。

怎么做:执行提交命令后,终端会出现类似下图的提示,表示提交成功并显示本次提交的信息。

git add 与 git commit 执行提示

易错点:只执行了 git add . 却没有 git commit,修改仍然没有形成版本记录;提交信息要写在 -m 后面的引号中。转写稿还强调,Git 命令中的英文、空格要准确,不能把 commit 写成别的形式。

用 git status 做提交前后的检查 ​

为什么需要:新手最常见的问题是“我到底 add 了没有、commit 了没有”。查看状态可以避免漏提交。

怎么想:转写稿中总结了三种状态:红色表示工作区已修改但未提交到暂存区;绿色表示已提交到暂存区但还未提交到版本库;出现 nothing to commit 表示没有待提交内容。

怎么做:在 add 前后、commit 前后执行:

bash
git status

根据颜色和提示判断下一步。

易错点:看到红色不要直接 commit,应先 git add .;看到绿色说明已暂存,但还要继续 commit;看到 nothing to commit 说明当前没有可提交的修改。

把需求串起来:每个阶段都重复一次提交流程 ​

为什么需要:需求要求“用 Git 记录每一次操作”,目的就是让你养成阶段性提交的习惯。

怎么想:按参考步骤推进:创建新文件夹并初始化仓库;创建首页并添加结构,提交一次;创建 CSS 并编写样式,提交一次;创建 JS 并编写逻辑,再提交一次。

怎么做:初始化仓库使用转写稿中讲到的:

bash
git init

之后每个阶段重复:

bash
git add .
git commit -m"完成首页结构"
git add .
git commit -m"完成CSS样式"
git add .
git commit -m"完成JS逻辑"

上面的提交信息是示例,实际写清楚本阶段完成内容即可。

易错点:不要把首页、CSS、JS 全部做完才提交一次;也不要每次提交都写“更新”“修改”这类无法辨认的信息。转写稿中通过 git log 查看提交记录、再回退版本的演示说明:提交信息越清楚,后面查看和回退越方便。

为什么需要查看并切换历史版本 ​

Git 把代码提交到版本库之后,并不是“交完就完了”。版本控制真正的价值之一,是让我们能查看过去提交了什么,并在需要时回到某一个历史版本。转写稿里用一个很直观的场景演示:先提交一次,再删掉页面上的按钮并再次提交;这时后悔了,想找回按钮,Ctrl + Z 已经无法恢复,但 Git 可以给一次“后悔的机会”。

所以本节要解决两件事:

  1. 先查看历史版本,拿到目标版本的版本号;
  2. 再用命令切换到指定版本。

命令执行位置就在上一节打开的终端或 Git Bash 中。注意要先进入对应的 Git 仓库目录再执行。

查看历史:git log 与 git log --oneline ​

为什么需要:切换版本前,必须先知道要切换到哪个版本,也就是先拿到版本号。
怎么想:想看完整信息用 git log;只想快速看版本号和提交信息用 git log --oneline。
怎么做:

bash
# 简略信息
git log --oneline
# 完整信息,如果出现无法退出,可以按 q
git log

git log 的完整信息里会包含版本号、作者、时间、提交信息等内容;git log --oneline 会把信息压缩成一行,通常前面是简略版本号,后面是提交信息。转写稿中还提到,--oneline 输出里会看到一个指针信息,这个指针和后续版本切换有关。

易错点:

  • 命令要在仓库目录下执行,否则可能提示不是 Git 仓库;
  • git log 信息太长时,终端可能出现冒号等待状态,此时按 q 退出;
  • 在 Git Bash 中复制版本号不要习惯性按 Ctrl + C,转写稿中用的是右键复制/粘贴;
  • 版本号不要手敲,容易抄错,建议复制。

切换到指定版本:git reset --hard 版本号 ​

为什么需要:查看历史只是“看”,真正回到过去某个状态要用切换命令。
怎么想:先从 git log --oneline 或 git log 里复制目标版本号,再执行 git reset --hard 版本号。
怎么做:

bash
# 切换到指定版本
git reset --hard 版本号

转写稿中的调试过程是这样的:先提交了一次,然后删除按钮,又提交了一次;执行 git log 后能看到两次提交记录。为了回到第一次提交的状态,他复制第一次提交的版本号,执行类似:

bash
git reset --hard 版本号

执行后终端提示 HEAD is now at ...,表示当前指针已经指向目标版本。再回到文件里看,之前删掉的按钮又回来了,这就是版本回退的效果。

易错点:

  • --hard 是硬重置,执行前要确认当前工作区没有需要保留的未提交修改;
  • 版本号要完整、准确,建议直接复制;
  • 切换后当前仓库状态会变化,不要以为只是“查看了一下”。

切换后找不到“未来”版本:git reflog ​

为什么需要:版本切换之后,git log 可能看不到切换前较新的提交,这时需要查看更完整的历史操作记录。笔记中明确写了:版本切换之后 git log 可能会出现无法查看的情况,可以用 git reflog。
怎么想:git log 主要看当前提交链;git reflog 用来看所有版本/操作信息,方便找回之前的版本号。
怎么做:

bash
# 查看完整历史(版本切换之后 git log 可能会出现无法查看的情况)
git reflog

拿到 reflog 里的版本号后,仍然可以用 git reset --hard 版本号 切回去。

易错点:

  • reflog 里的记录也要看清版本号和提交信息,不要复制错行;
  • 切换版本仍然使用 git reset --hard 版本号;
  • 终端信息较多时注意退出和翻页状态。

测试与本节命令清单 ​

使用上一节完成的需求测试本节命令。建议按下面流程操作:

bash
# 1. 查看简略历史,复制一个旧版本号
git log --oneline

# 2. 切换到旧版本
git reset --hard 版本号

# 3. 观察文件变化后,查看完整操作历史
git reflog

# 4. 如需回到较新的版本,再从 reflog 中复制版本号切换
git reset --hard 版本号

本节需要掌握的核心命令就是:

bash
git log --oneline
git log
git reset --hard 版本号
git reflog

记住顺序:先查历史拿版本号,再切换;切换后找不到较新提交,就用 reflog 查完整记录。

课件图示 ​

课件第22页:核心操作及命令: 1. 查看历史版本 git log --oneline git

课件第15页:总结 总结 1. 通常有两种获取Git仓库的方式: 将尚未进行版本控制的本地目录

课件第10页:文档地址: 安装完Git 之后,要做的第一件事就是设置你的用户名和邮件地址。因为

课件第17页:文档地址:每当完成了一个阶段的目标,想要记录下它时,就将它提交到仓库。 核心操作

课件第18页:核心操作及命令: 1. 工作区开发 项目文件夹 2. 将修改后的文件添加到暂存区

课件第20页:总结 总结 1. 使用Git进行版本控制的项目中的3个区: 工作区、暂存区、版本

课件第8页:总结 总结 1. Git是一个版本控制系统 2. 版本控制系统: 记录,查看,切

课件第37页:基于提供的Git仓库,创建并切换到新的分支(dev),并实现功能 参考步骤: 1

代码示例 ​

示例一:配置 Git 用户信息(安装完成后第一件事) ​

bash
# 1. 打开终端:Windows 在任意文件夹右键 -> Git Bash Here;Mac 打开“终端”
# 2. 配置用户名(换成你 gitee 注册的昵称)
git config --global user.name "gitee注册的用户名"

# 3. 配置邮箱(换成你 gitee 绑定的邮箱)
git config --global user.email gitee配置的邮箱

# 4. 查看配置是否成功
git config --list

关键行与易错点

  • --global 是“全局配置”,表示这台电脑上所有仓库都生效;两个 - 不能写成 -。
  • 该有空格的地方必须有空格:git 与 config 之间、--global 与 user.name 之间、user.name 与引号之间;多一个少一个都不行。
  • 成功时没有任何提示,出错才会提示(错误优先),所以“没反应”= 配置成功。
  • git config --list 显示不全时会出现一个冒号 :,此时按 q 退出(英文 q)。
  • 用户名写错了不用删,再执行一遍同样的命令覆盖即可;可以按键盘上/下键调出历史命令修改。
  • 用户名和邮箱要与 gitee 注册信息一致,因为每次 commit 都会记录这些信息。

示例二:初始化仓库 + 记录每一次更新(需求:首页 → css → js) ​

bash
# 0. 在项目文件夹下打开 Git Bash(Mac 用“新建位于文件夹位置的终端窗口”)

# 1. 初始化仓库,把当前目录变成 Git 仓库
git init

# 2. 创建 index.html 并写好结构后,记录一次
git add .
git commit -m"创建首页并添加结构"

# 3. 创建 css 并写好样式后,再记录一次
git add .
git commit -m"创建css并编写样式"

# 4. 创建 js 并写好逻辑后,再记录一次
git add .
git commit -m"创建js并编写逻辑"

关键行与易错点

  • git init 执行成功后,文件夹里会多出一个隐藏的 .git 文件夹,它保存的是版本信息,不要改动、不要删除,删了版本记录就没了。
  • Windows 看不到 .git:在文件夹上方“查看”里勾选“隐藏的项目”;Mac 用 Command + Shift + . 切换隐藏文件显示。
  • git add . 后面的那个点不能漏,表示把当前目录所有改动添加到暂存区。
  • git commit -m"信息" 中 -m 与引号紧挨着写,"信息" 是本次提交的说明,写清楚“这次改了什么”。
  • 提交节奏:工作区开发 → git add . → git commit -m"信息",完成一个阶段目标就记录一次。
  • git init 重复执行会给出“重新初始化”的提示,属正常现象。

示例三:查看与切换历史版本 ​

bash
# 1. 简略信息:一行一个版本(版本号 + 提交信息)
git log --oneline

# 2. 完整信息:版本号、作者、时间、说明(出现冒号时按 q 退出)
git log

# 3. 切换到指定版本(版本号从上面命令里复制)
git reset --hard 版本号

# 4. 拓展:查看完整历史(切换版本后 git log 可能看不到后面的记录)
git reflog

关键行与易错点

  • 命令要在项目文件夹打开的终端 / Git Bash 中执行,位置不对会提示“不是 git 仓库”。
  • git log 输出太长出现冒号 : 时按 q 退出,否则会卡住。
  • 复制版本号不能用 Ctrl + C(Git Bash 里 Ctrl + C 是中断),要右键 → Copy,粘贴也是右键 Paste。
  • git reset --hard 是硬回退,会丢弃工作区内容,执行前确认没有想保留的改动。
  • 回退之后 git log 可能“看不到”回退前的版本,用 git reflog 找到完整历史再 git reset --hard 切回来。

常见错误 ​

  1. 装完 Git,右键菜单里没有 Git Bash Here 现象:在文件夹里右键找不到入口,以为没装上。 原因:安装时装到了中文/带空格的路径,或安装时取消了右键菜单集成,或装完没有重启资源管理器。 修法:卸载后重装到纯英文路径、全程默认设置;装完注销或重启一次再验证。

  2. git commit 报 “Please tell me who you are” 现象:第一次提交直接被拦下。 原因:用户名/邮箱没配、只配了某一项、或 --global 写成了 --golbal 之类,命令静默失败没察觉。 修法:重跑 git config --global user.name 与 user.email,再用 git config --list 确认两条都在;成功时终端本来就没有回显,别以为没生效。

  3. git config --list 之后终端卡住,敲什么都没反应 现象:屏幕左下角出现一个冒号,光标不动。 原因:输出太长进了分页器(less),此时处于“阅读模式”,不是 shell。 修法:按 q 退出;不想进分页器就用 git --no-pager config --list。

  4. git init 明明执行了,却看不到 .git 现象:文件夹里只有自己建的文件,怀疑初始化失败。 原因:.git 是隐藏目录,系统默认不显示。 修法:Windows 在“查看”里勾选“隐藏的项目”;mac 按 Command + Shift + . 切换。看到 .git 才算仓库建立成功。

  5. 提交完发现新写的代码没被记录 现象:git log 里有记录,但回退后最新代码不见了 / 或者根本没产生新记录。 原因:只做了 git add 没做 git commit,或改了文件后两个都没做——暂存区不等于版本库。 修法:养成 add . → commit -m"..." 成对出现的习惯,提交后 git log --oneline 核对条数是否增加。

  6. git reset --hard 回退后,git log 里再也找不到“未来”的版本 现象:想再切回去,发现目标版本号消失了,以为代码被删了。 原因:log 只显示当前 HEAD 往回的历史,回退后原来的后续提交不在 log 视野里。 修法:用 git reflog 查出那次提交的版本号,再 git reset --hard 版本号 回去。reset --hard 执行前先确认没有未提交的改动。

  7. git commit 后跳进一个满屏 ~ 的界面,不知道怎么退出 现象:命令没写成 -m,或者 -m 和提交信息之间漏了内容,进入了编辑器。 原因:不带 -m 时 Git 会打开默认编辑器让你写提交信息。 修法:按 Esc 后输入 :wq 保存退出(:q! 放弃);正确写法是 git commit -m"信息",-m 与引号之间不留空格也可以。

练习 ​

  1. 三次提交走一遍完整流程:新建文件夹 → git init → 建 index.html 并提交 → 建 style.css 并提交 → 建 main.js 并提交。要求 git log --oneline 恰好三条记录,且每条信息能说清“这一步做了什么”。

  2. 后悔实验:在上一题基础上,用 reset --hard 回退到第一次提交,观察工作区里 style.css、main.js 是否还在;然后用 reflog 找回最新版本并切回,记录两次操作后 git log --oneline 的差异。

  3. 排错题:下面三条命令序列各自哪里有问题,怎么修? ① 在桌面根目录执行 git init 后开始写项目; ② git add . 之后直接关窗口,第二天打开发现昨天的改动没有记录; ③ git config --global user.name = "张三"。

  4. 状态判断:分别构造三种情形——(a) 改了文件没 add;(b) add 了没 commit;(c) 提交后没再改——写出 git status 的输出特征(颜色/提示语),并说出每种情形下“下一步该敲什么命令”。

  5. 配置迁移:假设换到一台新电脑,说明你要重新执行哪两条命令、用什么值、如何验证;并回答:如果把邮箱写成了随便一个不存在的地址,提交会失败吗?会影响代码本身吗?

原视频对照 ​

#视频时长
11反馈及作业23:06
22复习04:12
33今日内容介绍02:14
44上午回顾10:56
5git介绍&git安装12:00
6配置用户信息08:55
7初始化仓库05:36

小结 ​

  1. Git 的核心价值是“可回退”,而可回退的前提是提交过——没进版本库的内容,任何命令都救不回来。
  2. 命令顺序由三区模型决定:改工作区 → add 进暂存区 → commit 进版本库;跳过 add 直接 commit,新改动不会进这次记录。
  3. 用户名和邮箱只是提交的归属标签,写错不影响代码正确性,只影响历史记录里“这是谁提交的”,所以换公司要重配。
  4. .git 目录就是仓库本体:代码文件丢了可以重写,.git 丢了历史就彻底没了,任何情况下都不要删、不要改。
  5. reset --hard 是同时移动指针并覆盖工作区的破坏性操作,执行前必须先确认工作区干净或已提交。
  6. log 只能看到“从当前位置往回”的历史,reflog 才能看到“曾经到过哪里”,后者是误操作后的第一救命命令。
  7. 提交粒度按“一个可描述的目标”切分,提交信息写清做了什么,日后才能靠 --oneline 一眼定位回退点。
  8. 今天所有操作都发生在本地仓库,联网只用于注册账号和以后推送;本地仓库与远程仓库是两件事,不要混为一谈。