当前位置: 首页 > news >正文

git提交到本地仓库了,怎么撤回

如果你想要撤回已经提交到本地仓库的更改,可以使用以下一些Git命令:

1. **撤回最后一次提交** (不保留更改):
   - `git reset --hard HEAD~1`:这会撤销最后一次提交,并且所有的更改都会丢失。

2. **撤回最后一次提交** (保留更改到暂存区):
   - `git reset --soft HEAD~1`:这会撤销最后一次提交,但是更改会保留在暂存区,你可以重新提交。

3. **撤回最后一次提交** (保留更改到工作目录):
   - `git reset --mixed HEAD~1`:这是默认选项,撤销最后一次提交,更改会保留在工作目录中。

4. **修改最后一次提交** (例如,添加遗漏的文件或修正提交信息):
   - `git add <遗漏的文件或更改>`:将需要重新提交的文件添加到暂存区。
   - `git commit --amend`:修改最后一次提交的信息或包括新的更改。

5. **撤回特定文件的更改**:
   - `git checkout -- <file>`:放弃对特定文件的更改。

6. **撤回所有未提交的更改**:
   - `git reset --hard`:放弃所有未暂存和已暂存的更改。
   - `git clean -fd`:清除所有未跟踪的文件和目录。

7. **解决冲突后撤回**:
   - 如果在合并或拉取时出现冲突,解决了冲突后,使用`git add`将解决后的文件添加到暂存区,然后`git commit`完成提交。

8. **使用暂存区(stash)功能**:
   - `git stash`:暂存当前工作进度,包括未提交的更改。
   - `git stash pop`:恢复之前暂存的工作进度。

9. **回滚到特定提交** (不保留之后的提交):
   - `git reset --hard <commit>`:将HEAD、索引区和工作目录都回滚到指定的提交。

请注意,使用`--hard`选项会丢失所有更改,因此在使用之前请确保这是你想要的操作,或者你已经备份了你的工作。如果你想要撤回已经推送到远程仓库的提交,那么情况会更复杂一些,可能需要使用`git push`的强制推送选项,但这会影响其他协作者的仓库状态。
 


注意:

撤回最后一次提交 (保留更改到暂存区)撤回到git add .这个命令运行后,撤回最后一次提交 (保留更改到工作目录)这个是撤回到没有执行git add .前

也就是:

- `git reset --soft HEAD~1`:这个命令会撤回最后一次提交,但保留更改在暂存区(staged)。这意味着所有在最后一次提交中所做的更改仍然被标记为将要提交的(即它们在暂存区)。这个命令不会改变工作目录(working directory),即工作目录中的文件不会被撤销更改。

- `git reset --mixed HEAD~1`(或简单地 `git reset HEAD~1`,因为这是默认行为):这个命令也会撤回最后一次提交,但更改会被保留在工作目录中。这意味着更改不再标记为将要提交的,它们回到了工作目录,就像你从未运行过 `git add` 一样。

简单来说:
- `--soft`:撤销提交,但更改保留在暂存区,你可以重新提交。
- `--mixed`(默认):撤销提交,更改保留在工作目录,需要重新 `git add` 到暂存区。
- `--hard`:撤销提交,所有更改都会丢失。(注意一般不用这个!!!)

如果你想要撤回到执行 `git add .` 命令之后,但还没有执行 `git commit` 的状态,你可以使用 `git reset --mixed HEAD~1`。这样,你将撤销最后一次提交,并且所有更改会出现在工作目录中,你需要重新 `git add` 这些更改,然后再次提交。
 

http://www.lryc.cn/news/416941.html

相关文章:

  • lua学习(1)
  • SQL报错注入之updatexml
  • 单元测试的重要性
  • mysql线上查询数据注意锁表问题
  • UE5 右键菜单缺少Generate Visual Studio project files
  • 前端性能优化-webpack构建优化
  • Traefik:部署与实战
  • [Spring] SpringBoot统一功能处理与图书管理系统
  • 实现吸顶效果,一个页面多个元素吸顶效果
  • 【C++入门(下)】—— 我与C++的不解之缘(二)
  • 【数据结构】哈希应用-STL-位图
  • Unbuntu 服务器- Anaconda安装激活 + GPU配置
  • python 装饰器记录函数用时
  • 实验10 任何一个非0自然数m的立方均可写成m个连续奇数之和。
  • Jenkins的安装方式
  • 网络之华为S5700S-52P-LI交换机系统恢复
  • 蜂窝网络架构
  • 培训第二十二天(mysql数据库主从搭建)
  • 速盾:CDN回源失败都有什么原因?
  • C语言 | Leetcode C语言题解之第328题奇偶链表
  • 8月6日笔记
  • 爱可声助听器:在全球听力市场中破冰前行
  • 华为OD面试 - 最佳升级时间窗(Java JS Python C C++)
  • LE-50821F/FA激光扫描传感器|360°避障雷达之性能参数与配置清单说明
  • 精准洞察农田生态,智慧农业物联网环境监测与数据采集系统来袭
  • sql注入复现(1-14关)
  • Spring Boot-12
  • 【Linux】进程详解
  • python的多线程
  • 在Kylin服务器安装PostgreSQL16数据库