git 撤销操作

在 Git 中,撤销修改可以通过多种方式实现,具体取决于你想撤销的修改类型(未提交的修改、已提交的修改、合并等)。以下是一些常用的撤销修改的指令:

撤销未提交的修改
撤销工作区的所有修改:

git checkout -- <file>

这个命令会撤销工作区中指定文件的所有未提交修改,恢复到最近一次提交的状态。如果要撤销所有文件的修改,可以使用:

git checkout -- .

Git 撤销暂存区git add 之后:

Git reset .

Git reset HEAD .

Git 撤销commit后:

1. git reset HEAD~

  • 行为git reset HEAD~ 实际上是 git reset --mixed HEAD~ 的简写形式(在不指定具体模式时,默认为 --mixed)。这个命令会将当前分支的 HEAD 指针回退到上一个提交(即 HEAD~),并且会撤销上一次提交所做的所有更改,但这些更改会保留在工作目录中,暂存区(staging area)会被清空。
  • 效果:工作目录中的文件会包含上一次提交之后的所有更改,但这些更改现在是未暂存的(unstaged)。你需要使用 git add 命令重新将它们添加到暂存区,然后使用 git commit 命令重新提交。
  • 用途:当你想要撤销最近的一次提交,但保留那些更改以便稍后重新提交时,这个命令非常有用。

2. git reset --soft HEAD^

  • 行为git reset --soft HEAD^ 命令会将当前分支的 HEAD 指针回退到上一个提交(即 HEAD^),但与 --mixed 或 --hard 选项不同,--soft 选项会保留工作目录和暂存区中的所有更改。换句话说,它只改变 HEAD 指针的位置,而不影响工作目录或暂存区的状态。
  • 效果:工作目录和暂存区中的文件保持不变,就像没有执行任何撤销操作一样。但是,由于 HEAD 指针已经回退,Git 会认为自上一个提交以来的所有更改都是新的、尚未提交的更改。
  • 用途:当你想要撤销最近的一次提交,但想要将这些更改作为下一次提交的一部分时(例如,当你想要合并多个提交为一个时),这个命令非常有用。

git push之后撤销:

main主分支不能回滚,其他分支可以:

git push -f
Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To gitlab.test.git
 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'gittest.git'

git log

git reset --hard b44c6f4

git push origin test:test -f

https://blog.youkuaiyun.com/weixin_42988712/article/details/127450683

https://blog.youkuaiyun.com/m0_64564920/article/details/124410678

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值