Git_Learning
  • Git/
    • 01.初识Git
    • 02.Git的特性
    • 03.使用Git的方式
    • 04.安装Git
    • 05.初始配置
    • 06.创建本地仓库
    • 07.更新文件并提交
    • 08.查看提交历史
    • 09.设置别名
    • 10.切换版本
    • 11.标签操作
    • 12.撤销修改-本地已保存状态
    • 13.撤销修改-已暂存状态下
    • 14.还原修改-已提交状态下
    • 15.从分支中删除提交
    • 16.修改提交内容
    • 17.移动文件
    • 18.忽略文件
    • 19.了解Git对象存储机制
    • 20.创建分支
    • 21.合并分支
    • 22.合并冲突
    • 23.撤销合并(未完善)
    • 24.变基和合并
    • 25.使用变基合并分支
    • 26.合并到主分支
    • 27.多存储库
    • 28.从原始仓库获取更改
    • 29.合并已经拉取的更改
    • 30.拉取并合并
    • 31.创建一个跟踪分支
    • 32.裸仓库
    • 33.推送变更
    • 34.拉取共享变更
    • 35.托管Git仓库
    • 36.常见问题
  • GItHub/
    • 如何向他人的项目提交内容
  • README
Powered by GitBook
On this page
  • 创建一个新提交,并打上标签
  • 恢复提交之前的文件
  • 记录其实还在,并且我们还可以引用
  1. Git/

15.从分支中删除提交

本节我们学习如何删除提交。

创建一个新提交,并打上标签

在 test 文件中,添加一行 oops,并提交

# 查看文件内容
$ cat .\test.txt
abc
oops

# 提交到版本库
$ git commit -a -m "Oops,an error committed"

# 查看提交日志
$ git hist
* 739560c 2023-05-05 | Oops,an error committed (HEAD -> master) [aku]
* 1ca1854 2023-05-05 | Revert "Added 123 to the test.txt" [aku]
* 375f4fe 2023-05-05 | Added 123 to the test.txt [aku]
* d7f681f 2023-05-05 | Added abc to the test.txt (tag: v1) [aku]
* 01b8702 2023-05-05 | Add first file (tag: v1-beta) [aku]

# 打上标签 oops
git tag oops

$ cat .\test.txt
abc
oops

恢复提交之前的文件

$ git reset --hard v1

$ git hist
* d7f681f 2023-05-05 | Added abc to the test.txt (HEAD -> master, tag: v1) [aku]
* 01b8702 2023-05-05 | Add first file (tag: v1-beta) [aku]

$ cat .\test.txt
abc

之前我们说过 HEAD 是 Git 中一个特殊的指针,它始终指向当前所在分支的最新提交(或者是合并操作中的合并状态)。命令的意思是将您当前分支的 HEAD 指针重置到 v1 标签所指向的提交,同时强制更新工作目录和暂存区以与该提交匹配。这将删除所有未提交的更改和文件,并永久性地回滚您的代码库至 v1 标签所代表的状态。

记录其实还在,并且我们还可以引用

$ git hist --all
* 2dd1257 2023-05-04 | Oops,an error committed (tag: oops) [aku]
* bcd7c90 2023-05-04 | Added abc (HEAD -> master, tag: v1) [aku]
* 05ade05 2023-05-04 | Add first file (tag: v1-beta) [aku]

本地分支的重置通常是安全的。任何“意外”情况通常可以通过使用所需提交再次重置来恢复。但是,如果该分支在远程存储库上共享,则重置可能会使其他共享该分支的用户感到困惑。

Previous14.还原修改-已提交状态下Next16.修改提交内容

Last updated 2 years ago