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

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

熟练掌握git撤销命令

初始演示仓库

git init
git add README.md && git commit -m "first commit"
git add .gitignore && git commit -m "add ignore file"
git add main.py && git commit -m "add main file"
git log --pretty=oneline
下面演示的每个环节都需要基于初始的演示仓库来操作

image.png


如何查看某一个提交记录的详细内容 上文已介绍 这里不再赘述了


git checkout


git checkout 不带文件路径 对工作区安全

checkout对工作区是安全的 不会丢弃工作区所做的更改

image.png

在工作区中新增tests/test.py文件
并将该文件加入暂存区
git add tests/test.py
然后checkout到上一个提交
git checkout 1bf76dd2df0af778721ce3084f0204105a394cc5

image.png

image.png

HEAD 会直接指向 1bf76dd2df0af778721ce3084f0204105a394cc5 提交
进入分离 HEAD 状态
即不再指向分支引用

image.png


然后提取1bf76dd2df0af778721ce3084f0204105a394cc5提交的文件快照依次更新到暂存区和工作区
git checkout [branch] 执行过程与上面类似
区别在于HEAD会指向[branch]这个分支的引用


checkout 带有文件路径 对工作区不安全


image.png

git checkout fa7557c5c8f4c2ecd4a9ba3308fded322f015ff6 README.md


git reset


soft模式

image.png

git checkout master && cat .git/refs/heads/master
git reset --soft 1b0f9054582d9390dfd3d47e1127d692638cd818
git status

image.png

将HEAD及其指向的分支引用指向1b0f9054582d9390dfd3d47e1127d692638cd818 提交
HEAD指向的分支引用不变
但分支引用变成了1b0f9054582d9390dfd3d47e1127d692638cd818
若 HEAD 原本处于分离 HEAD 状态,则只会更新 HEAD 本身
它不会再对暂存区以及工作区进行任何更改
暂存区和工作区依然保留着原来的 406caab89533dcd17edc86bc2037d9134f543e66 提交之后的文件快照与文件


mixed模式


image.png

会重置提交历史
还会更新暂存区
git checkout master && cat .git/refs/heads/master
git reset --mixed 5c8d38b72eb64a55b57d85d448407337773758d5

image.png

1、重置提交历史跟soft模式相同
2、之后还会更新暂存区 将其填充为5c8d38b72eb64a55b57d85d448407337773758d5提交的文件快照
暂存区的原有内容将会丢失
3、不会对工作区进行任何更改
工作区依然保留着68260c826b73d08505765ef82d20b027592dfe88提交之后的文件





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