git 各种撤销操作办法 您所在的位置:网站首页 win10怎么撤销上一步操作方法 git 各种撤销操作办法

git 各种撤销操作办法

2024-07-01 04:57| 来源: 网络整理| 查看: 265

1. git add 添加 多余文件

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

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

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

撤销操作

git status     先看一下add 中的文件git reset HEAD   如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 ,HEAD 可以不写,直接git reset  git reset HEAD XXX/XXX/XXX.java    就是对某个文件进行撤销了,HEAD 可以不写,直接git reset  XX文件

2. git commit 错误

如果不小心 弄错了 git add后 , 又 git commit 了,但还没push到远程。 先使用git log 查看节点 commit xxxxxxxxxxxxxxxxxxxxxxxxxx Merge: Author: Date:

然后git reset commit_id    本地回滚

PS:还没有 push 也就是 repo upload 的时候

git reset commit_id (回退到上一个 提交的节点(即目标版本号) 代码还是原来你修改的)git reset –hard commit_id (回退到上一个commit节点, 代码也发生了改变,变成上一次的)

如回到上一次版本:git reset --hard  HEAD^ 或者git reset   HEAD^

这样操作,只是将本地仓库回滚到上次提交之前的状态,不会对远程仓库造成影响。

延伸:远程回滚

远程仓库回滚需要在本地仓库回滚的基础上,进行强制推送。

  git reset --hard 目标版本号   git push -f

-f 即强制推送,因为本地仓库在reset之后,版本比远程仓库低,普通推送无法推送,会报错,需要进行强制提交

3.如果要是 提交了以后,可以使用 git revert(反做)

还原已经提交的修改, 此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交 git revert HEAD 撤销前一次 commit git revert HEAD^ 撤销前前一次 commit git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存) git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

步骤:使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交: (1)反做,使用“git revert -n 版本号”命令。如下命令,我们反做版本号为8b89621的版本:

git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861 注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。 (2)提交,使用“git commit -m 注释”,如:

git commit -m "revert add text.txt" 

常见的情况

1.本地仓库commit,但还没push远程仓库。需要撤销这次commit。使用git log 可获取到commit  id.在Git中,用HEAD表示当前版本,上一个版本就是HEAD^

解决方法: 第一种:git reset --soft HEAD~ 可成功撤销最近一次commit,不撤销git add file。 表现为保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区 第二种:git reset --hard HEAD~ 撤销commit且撤销add 同时重置工作区和暂存区,即工作区改动的代码被撤销)。 第三种:git reset HEAD~ 不加参数(mixed):撤销commit且撤销add ,但保留工作目录,并清空暂存区 --soft不删除工作空间的改动代码 ,撤销commit,不撤销git add file --hard删除工作空间的改动代码,撤销commit且撤销add(慎用) 第四种:git revert HEAD 撤销当前的提交。再执行git commit -m "注释" 提交新的commit

2.撤销指定文件到指定版本

# 查看指定文件的历史版本 $ git log # 回滚到指定commitID $ git checkout

3.删除最后一次远程提交

方式一:使用revert $ git revert HEAD $ git commit -m "注释" $ git push origin master 使用revert 撤销某版本,但push远程仓库后,形成新的commit。所以先要执行git commit -m "注释",再执行git push origin master 方式二:使用reset $ git reset --hard(或者soft) HEAD^ $ git push origin master -f 注释:如选择git reset --soft HEAD^ 本地的工作区最后修改还保留着。此时使用git push 那么远程仓库是上一次的版本。 所以在先前最新的commit记录就没有了 这时可以对本地工作区当前代码修改,重新提交推送 //修改代码,添加修改 git add . //重新提交 git commit -m "CSDN-java反射06-成员变量Field-代码优化" //重新推送 git push origin master



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有