执行过 git add 和commit后如何撤销

Git操作指南:撤销提交与修改注释
本文详细介绍了如何在Git中撤销`git add`操作和已提交的commit。通过`git reset HEAD`可以撤销上一次的`add`,而`git reset HEAD~1`则能撤销最近一次的commit。若要撤销特定文件,只需指定文件路径。若需修改commit注释,使用`git commit --amend`即可。了解这些技巧将帮助你更有效地管理Git版本历史。

1.git add 添加 多余文件

这样的错误是由于, 有的时候可能

git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件

git add 如果添加了错误的文件的话

撤销操作

git status 先看一下add 中的文件

git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

2.撤销commit

git reset --soft HEAD^

HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2

–mixed

意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

–soft

不删除工作空间改动代码,撤销commit,不撤销git add .

–hard

删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:

git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

### Git 中 `add`、`commit` `push` 命令详解及工作流程 #### 一、Git 的基本概念 Git 是一种分布式版本控制系统,用于跟踪文件的变化并管理项目的历史记录。它通过三个主要区域来实现这一功能:**工作区**、**暂存区**(Staging Area)以及**版本库**(Repository)。这些区域之间的交互构成了 Git 的核心操作逻辑。 - **工作区**是指开发者实际编辑文件的地方。 - **暂存区**是一个临时存储区域,在此阶段可以决定哪些更改应该被纳入下一次提交。 - **版本库**保存着项目的完整历史记录,包括每次提交的内容及其元数据。 #### 二、具体命令解析 ##### 1. `git add` 该命令的作用是将修改过的文件从工作区移动到暂存区。这意味着告诉 Git,“我希望把这些改动加入即将进行的一次提交。” 只有经过 `git add` 处理后的变更才会进入下一环节——即准备被打包成一个新的提交对象[^3]。 ```bash git add <file> ``` 如果想一次性添加所有已有的更新,则可使用通配符`.`表示当前目录下的全部文件: ```bash git add . ``` ##### 2. `git commit` 当完成了一组有意义的工作之后,就可以执行 `git commit` 来正式确认这次改变,并将其永久化地储存在本地仓库里。每一次提交都会生成唯一的哈希值作为标识符以便日后追溯。同时还需要提供一条简洁明了的消息描述此次变动的原因或内容[^4]。 ```bash git commit -m "Your descriptive message here" ``` 这里 `-m` 参数后面紧跟的是本次提交的日志信息。 ##### 3. `git push` 最后一步就是利用 `git push` 把已经存在于本地的最新版推送到远程服务器上与其他团队成员共享成果或者备份至云端服务提供商处如 GitHub, GitLab 等平台之上[^1]。 ```bash git push origin main ``` 注意替换其中的 branch name (main) 成为你目标分支的名字;另外首次推送可能还需指定完整的路径形式比如 `username/repo`. #### 三、综合实例演示 下面展示如何编写一个简单的 shell 脚本来自动处理上述过程中的重复劳动部分: ```bash #!/bin/bash git add . git commit -m "$1" git push ``` 这样只需运行 ./scriptName.sh 'your_commit_message' 即可一键完成整个发布流程[^2]. ### 总结 综上所述,`git add`, `git commit`, 及其后续动作 `git push` 构成了最基本的协作开发模式之一。理解它们各自的功能定位对于初学者来说至关重要,因为这直接影响到了日常工作效率个人成长轨迹。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值