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

devtools/2024/11/9 16:46:01/

如果你想要撤回已经提交到本地仓库的更改,可以使用以下一些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.ppmy.cn/devtools/92153.html

相关文章

TCP全队列连接,tcpdum抓包

TCP全队列连接&#xff0c;tcpdum抓包 1. listen的第二个参数作用2. 理解全连接队列&#xff08;原理&#xff09;3. 为什么要有全连接队列并且队列长度要适当4. 使用不tcpdump 进行抓包&#xff0c;分析TCP过程&#xff08;三次握手&#xff0c;四次挥手&#xff09;4.1安装tc…

非关系型数据库(NoSQL数据库

非关系型数据库&#xff08;NoSQL数据库&#xff09;是一类设计用于大规模数据存储和分布式处理的数据库系统&#xff0c;与传统的关系型数据库&#xff08;如SQL数据库&#xff09;不同&#xff0c;它们通常不遵循传统的表格结构和SQL查询语言。 主要特点包括&#xff1a; 1.…

Java Web —— 第四天(HTTP协议,Tomcat)

HTTP-概述 概念:Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 特点: 1. 基于TCP协议:面向连接&#xff0c;安全 2.基于请求-响应模型的:一次请求对应一次响应 3. HTTP协议是无状态的协议: 对于事务处理没有…

Qt国际化

写在前面 在全球化的今天&#xff0c;软件应用的国际化变得尤为重要。 国际化不仅仅是翻译界面文本&#xff0c;更涉及到日期、时间、货币、数字格式等多方面的适应性调整。 Qt作为一个强大的跨平台应用开发框架&#xff0c;提供了丰富的国际化支持工具&#xff0c;使得开发者…

无缝协作的艺术:Codigger 视频会议(Meeting)的用户体验

在当今数字化的时代&#xff0c;远程协作已经成为工作和学习中不可或缺的一部分。然而&#xff0c;远程协作也面临着诸多挑战&#xff0c;如沟通不畅、信息同步不及时、协作工具的复杂性等。而 Codigger 视频会议&#xff08;Meeting&#xff09;作为一款创新的工具&#xff0c…

2024世界机器人大会将于8月21日至25日在京举行

2024年的世界机器人大会预定于8月21日至25日&#xff0c;在北京经济技术开发区的北人亦创国际会展中心隆重举办。 本届大会以“共育新质生产力 共享智能新未来”为核心主题&#xff0c;将汇聚来自全球超过300位的机器人行业专家、国际组织代表、杰出科学家以及企业家&#xff0…

菜鸡勇闯第136场双周赛

菜鸡鼓足了勇气报名了力扣双周赛&#xff08;后来复盘才知道双周赛更难一点&#xff0c;我真是头铁。。&#xff09; 没想到还拿了个竞赛名次哈哈哈哈哈还在前50%&#xff0c;小力它真的&#xff0c;我哭死 为什么我本科被高数老师忽悠&#xff0c;去打了两年数模o(≧口≦)o 每…

在Debian 8上安装Git的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 Git 是一个版本控制系统&#xff0c;自 2005 年发布以来&#xff0c;根据 GNU 通用公共许可证第 2 版进行分发。 Git 是一种主要…