专题一:Git 回退与恢复操作流程指南

本指南适用于需要将项目回退到某个历史版本,或在回退后恢复误删提交的开发者。

一、查看提交历史

1
git log --oneline

输出示例:

1
2
3
a1b2c3d4 初始化项目
e5f6g7h8 添加首页样式
9i0j1k2l 修复字体问题

二、回退到指定版本

方式一:彻底回退(删除之后的提交与代码改动)

1
git reset --hard 提交ID

示例:

1
git reset --hard e5f6g7h8

方式二:回退提交记录,但保留改动(改动会出现在暂存区)

1
git reset --soft 提交ID

方式三:取消暂存但保留工作区修改

1
git reset 提交ID

三、恢复已回退的版本

如果你使用了 --hard,但后悔了:

查看 HEAD 的移动记录

1
git reflog

输出示例:

1
2
abc1234 HEAD@{0}: reset: moving to e5f6g7h8
xyz9876 HEAD@{1}: commit: 修复字体问题

回退到之前的状态(例如 HEAD@{1})

1
git reset --hard HEAD@{1}

1
git reset --hard xyz9876

四、补充建议

  • 建议使用前先执行 \\*\* 和 \*\** 观察当前状态*
  • 如非必要,不要频繁使用 \``*,谨慎操作以防数据丢失。*
  • 可以先使用 git stash 备份当前工作区:
1
git stash save "临时保存当前工作"

回退完成后恢复:

1
git stash pop

命令速查表

1
2
3
4
5
6
git log --oneline               # 查看提交历史
git reset --hard 提交ID # 强制回退
git reset --soft 提交ID # 回退提交保留改动
git reset 提交ID # 取消暂存保留工作区
git reflog # 查看 HEAD 历史
git stash / git stash pop # 暂存和恢复改动

专题二 Git概述与常见命令

1.Git工作机制

img

2.Git常用命令

命令名称 作用
git config —global user.name 用户名 设置用户签名
git config —global user.email 邮箱 设置用户邮箱
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m “日志信息” 文件名 提交到本地库
git reflog 查看历史记录
git reset —hard 版本号 版本穿梭

设置用户签名

基本语法

1
2
git config --global user.name 用户名
git config --global user.email 邮箱

案例实操

全局范围的签名设置:

1
2
3
4
git config --global user.name yhm
git config --global user.email yaohm7788@163.com
git config --list # 查看全局配置
cat ~/.gitconfig # cat linux中查看文本的命令 ~ 家 [你当前用户的家]/ .gitconfig

说明:

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。

※注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系。

3.实操

初始化本地库

1
git init

案例实操

img

结果查看

img

查看本地库状态

基本语法

1
git status

案例实操

(1)首次查看(工作区没有文件)

img

(2)新增文件

img

img

(3)再次查看(检测到未追踪文件)

img

添加暂存区

将工作区的文件添加到暂存区

(1)基本语法

1
git add 文件名

(2)案例实操

img

查看状态(检测到暂存区有新文件)

img

提交本地库

暂存区文件提交到本地库

(1)基本语法

1
git commit -m "日志信息" 文件名

(2)案例实操

img

查看状态(没有文件需要提交)

img

修改文件(hello.txt)

查看状态(检测到工作区有文件被修改)

img

将修改的文件再次添加暂存区

img

查看状态(工作区的修改添加到了暂存区)

img

将暂存区文件提交到本地库

img

历史版本

查看历史版本

(1)基本语法

1
2
3
git reflog 查看版本信息
git reflog -n 数量
git log 查看版本详细信息

(2)案例实操

img

版本穿梭

(1)基本语法

1
git reset --hard 版本号

(2)案例实操

—首先查看当前的历史记录,可以看到当前是在48f4e22这个版本

img

—切换到之前版本,8ca80d7版本,也就是我们第一次提交的版本

img

—切换完毕之后再查看历史记录,当前成功切换到了8ca80d7版本

img

—然后查看文件hello.txt,发现文件内容已经变化

img

Git切换版本,底层其实是移动的HEAD指针。

专题三 Git客户端操作

Gitee(略)

GitHub远程仓库(略)

idea使用Git将java项目上传到GitHub

1.github如何修改默认分支为master

img

2.把项目上传github上(在终端用命令行)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#初始化本地仓库
git init

#将所有文件添加到暂存区
git add .

#提交更改并添加描述
git commit -m "消息描述"

#添加远程仓库URL
git remote add origin git 地址url

#将从远程仓库拉取更新,并使用rebase将本地的修改应用到这些更新之上
git pull --rebase origin master

#如果你是第一次将本地仓库推送到GitHub上(不是第一次去掉-u)
git push -u origin master

或者可以用idea自带的操作

img

忽略文件

概念:.gitignore 文件可以让 git 彻底忽略跟踪指定文件

目的:让 git 仓库更小更快,避免重复无意义的文件管理

例如:

  • 1.系统或软件自动生成的文件
  • 2.编译产生的结果文件
  • 3.运行时生成的日志文件,缓存文件,临时文件等
  • 4.涉密文件,密码,秘钥等文件

创建:

  • 1.项目根目录新建 .gitignore 文件
  • 2.填入相应配置来忽略指定文件

注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即可

分支的概念

概念:本质上是指向提交节点的可变指针,默认名字是 master

注意:HEAD 指针影响工作区/暂存区的代码状态

img

img

场景:开发新需求 / 修复 Bug,保证主线代码随时可用,多人协同开发提高效率

例如:

在现有代码上创建新分支完成内容列表业务

突然需要紧急修复 Bug - 单独创建分支解决 Bug

img

需求:创建内容列表 content 分支,并产生 3 次提交记录

步骤:

  1. 创建分支命令:git branch 分支名

img

  1. 切换分支命令:git checkout 分支名

img

  1. 工作区准备代码并暂存提交,重复 3 次

img

1.什么是 Git 分支?

指针,指向提交记录

2.HEAD 指针的作用?

影响暂存区和工作区的代码

3.如何创建和切换指针?

1
2
git branch 分支名
git checkout 分支名