熟练掌握git撤销命令(下)

简介: 熟练掌握git撤销命令(下)

image.png


git checkout master && cat .git/refs/heads/master
git reset --hard dde4ac13ab0f41ba0575be2de44f4368c6ebd280

image.png

1、更新HEAD指向dde4ac13ab0f41ba0575be2de44f4368c6ebd280提交 ,重置提交历史和暂存区的过程是soft和mixed相同
2、更新暂存区 将其填充为dde4ac13ab0f41ba0575be2de44f4368c6ebd280提交的文件快照,暂存区原有内容将会丢失
3、更新工作区 将其填充为dde4ac13ab0f41ba0575be2de44f4368c6ebd280提交的文件快照,工作区中的原有内容将会丢失
工作区和暂存区的未提交更改丢失后无法再通过 Git 找回


找回提交历史


image.png

reset 后丢失的提交历史仍然能够恢复
因为只是更新了 HEAD 指向的提交
而没有对实际的提交对象做任何更改
git reflog
git reset --hard 0f9fcca
就能恢复原来的提交历史

image.png


取消暂存文件


image.png

在工作区新增hello.py、world.py两个文件
同时加入暂存区
git add .

将其中一个文件取消暂存

git reset world.py
从 HEAD 提交中匹配 world.py 对应的文件快照
将匹配到的文件快照复制到暂存区
git status

image.png


分别提交
git commit -m "add hello.py" 
# 在另一个提交中提交 world.py
git add world.py 
git commit -m "add world.py"


git revert


怎么修改的 就怎么修改回去
比如 
修改之前name=平凡人
修改之后name=笔记
revert
之前:name=笔记
之后:name=平凡人

image.png


用于回滚某一个(或多个)提交引入的更改
revert 操作会接收指定的提交
反转该提交引入的更改
并创建一个新的「回滚提交」记录反转更改
然后更新分支引用
使其指向该提交

步骤

  • 将反转指定提交的更改合并到工作区
  • 将更改添加到暂存区
  • 创建新的提交

要求

提供一个干净的暂存区(即和 HEAD 提交状态一致)
且要求工作区的本地更改不会被合并操作覆盖
否则回滚会失败


image.png



git restore


将指定文件取消暂存

将暂存区中的 main.py 还原为 HEAD 中的内容
此时 HEAD 是默认的 source
git restore --staged main.py

放弃工作区中对该文件的更改

git restore main.py
可以选择将其还原为暂存区中的内容
因为此时暂存区中的内容和 HEAD 相同


暂存更改后再恢复


场景

当前分支修改了一些文件
但还不足以组织成提交或者包含了多个提交的内容
突然有紧急情况需要开始一项新的任务
此时希望可以将工作区和暂存区的本地更改暂时保存起来
以备在其他工作完成后可以从这里继续

git stash

会将本地更改保存起来
并将工作区和暂存区恢复到与 HEAD 提交相匹配的状态
此时可以切换到其他分支或者继续在当前分支完成其他任务
之后再将暂存的内容取回

用法

# 保存当前更改(添加 -u 选项以包括未跟踪的新文件)
git stash -u
# 完成其他任务...
# 恢复暂存的更改
git stash pop

图解说明

image.png

基于基础版本开发迭代1

迭代1还未提交来了一个紧急的迭代2


image.png

迭代2也是基于基础版本开发

此时将未提交的迭代1保存

image.png



相关文章
|
2月前
|
开发工具 git
Git版本控制工具合并分支merge命令操作流程
通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
290 15
|
5月前
|
安全 开发工具 git
git的常用操作命令
git的常用操作命令
337 57
|
3月前
|
存储 缓存 开发工具
Git stash命令的详细使用说明及案例分析。
通过上述案例,我们看到stash命令能够在不丢失进度的情况下,帮助开发者临时切换开发上下文,这在处理多个任务或紧急bug时特别有用。正确使用Git stash可以大大提高开发的灵活性和效率。
1120 0
|
6月前
|
存储 项目管理 开发工具
Git常用命令及操作技巧
以上是Git的常用命令及操作技巧,尽管看起来有些繁琐,但实际上只要花费一些时间进行实践,您将很快熟练掌握。随着使用熟练度的提高,您会发现Git对项目管理和协同工作的强大帮助。
150 20
|
8月前
|
人工智能 前端开发 Java
用git rebase命令合并开发阶段中多条commit提交记录
通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
1248 60
|
7月前
|
Linux 开发工具 git
版本控制工具:Git的安装和基本命令使用指南。
结束这段探险,掌握了Git你就等于掌握了一个宝藏,随时可以瞥见你的编程历程,轻松面对日后的挑战。Git,无疑是编程者的强大武器,开始你的Git探险之旅吧!
258 28
|
12月前
|
开发工具 git
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
|
10月前
|
网络安全 开发工具 git
mac git clone命令提示git@gitee.com: Permission denied (publickey).问题修复
mac git clone命令拉取gitee上项目代码时提示密钥问题
733 19
|
10月前
|
Java 网络安全 开发工具
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
|
11月前
|
机器学习/深度学习 Shell 网络安全
【Git】Git 命令参考手册
Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
276 3