关于版本回退

### git 关于版本回退

git版本回退

注释:git跟踪并管理的是修改,而非文件

  1. 当工作区的内容被修改,并未add到暂存区,此时想要丢弃对工作区的修改: git checkout 【--filename】

    注释: git checkout [分支名称] 切换到指定分支

  1. 当工作区的内容被修改,并且次修改已经add 至暂存区,此时想要将提交到暂存区的文档回退至工作区:git reset HEAD 【filename】

  • 回退后默认工作区还存在对文档的修改,如需丢弃对工作区的修改,则继续键入 : git chekout [--filename]

 

  1. 当工作区的内容被修改,并且此修改已经commit到版本库,此时想将修改回退到工作区(前提:未将修改后的版本push到远程仓库,否则无法回退): git reset --hard  [commit_id] 
    //注意:此id指的是需要回退的版本前一个id,并且此操作会把本地的修改记录全部会退掉,因此此操作需谨慎

注释:

    • commit_id 指的是提交git版本id,可通过git log 查看

    • git log 查看提交历史 (被回退掉的历史提交不会被记录,因此需要git reflog 查看被回退的commit _id)

    • git reflog 查看命令历史

 常用版本回退指令:

git  reset

1. 将提交到暂存区的内容回退到本地并保留 // 即:git add 之后提交到了暂存区,但并未git commit,想要撤销add操作

指令: git reset HEAD //将提交到暂存区的版本回退到本地

2. 将提交到暂存区的内容回退到本地并且本地也放弃修改

指令: git reset --hard HEAD //将提交到暂存区的版本回退到本地,并放弃在本地保存,此操作类似于: git reset HEAD + git checkout 因此带有 --hard 的指令谨慎操作

3.若需要回退的版本是当前分支上的HEAD commit,执行如下命令:

指令:git reset --hard HEAD^

4. git  reset commitId  :将远程分支的提交记录回退至指定commitId,此commitId 后的每一条修改记录都将被清空,本commitId 记录不会被清楚

git push origin remote  / git push -f origin remote  均失败

git push origin remote  -f    成功

 

git revert 

//将服务器上的某一笔提交记录回滚

1. git revert   commitId    服务器上不做修改,本地删除对应commit id 的修改 

2. git revert  commitId     + git push origin remote   ,git revert 后生成一个新的commit id 将此修改git push ,  服务器上版本回退

posted @ 2022-05-06 17:26  安妍  阅读(39)  评论(0编辑  收藏  举报