美文网首页
2021-05-11 git重置或还原已提交的代码--git r

2021-05-11 git重置或还原已提交的代码--git r

作者: 追寻1989 | 来源:发表于2021-05-11 09:15 被阅读0次

背景

在多人协作时,对代码的管理,难免会出现错误。如果出现错误,我们分析下来是要进行一些回退操作,那么解决办法有如下两种:
git reset
git revert

两种方式

git reset

在使用git reset命令前,需要先了解一个概念:HEAD
HEAD 是当前分支引用的指针,它总是指向该分支上的最后一次提交。这表示 HEAD 将是下一次提交的父结点。
通常,理解 HEAD 的最简方式,就是将它看做 你的上一次提交 的快照。
查看快照的操作如下:
下例就显示了 HEAD 快照实际的目录列表,以及其中每个文件的 SHA-1 校验和

git cat-file -p HEAD
git ls-tree -r HEAD

git reset的作用就是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本。

适用场景:
如果我们想直接回到之前的某一版本,但是不想保留该目标版本后面的版本,就可以用这种方法。

分支操作者, 操作如下:

git checkout <branch_name>
# 切换到目标分支上

git reset --hard <commit_id>
# 本地目标分支上重置代码到上面指定的commit_id, 
# 注意:该commit_id之后的所有提交都会丢失。
# 执行完后,HEAD的位置已经在该commit_id的位置
git reset --hard HEAD^  # 回到最新的一次提交
git push -f     等同于  git push --force
# 在上一条命令中,已经在本地分支中reset好,接下来让远程分支也有相同的效果,可以直接运行这条命令。
# 执行后,可以去代码托管网站查看

git push -f origin <branch_name>
# 如果目标分支和远程分支没有关联上,可以用这条命令,指出远程分支

其他分支使用者:

git checkout <branch_name>
# 切换到目标分支上

git reset --hard origin/branch_name
# 这步就是其他同事把自己本地branch_name重置到与origin/branch_name一致,
# 注意
# --hard参数会丢弃超过origin的所有commit
# 如果不想丢弃可以用 --mixed 或 --soft,具体用哪个根据自己情况来

git revert

Git的 “还原” 操作。
Git 给你一个生成一个新提交的选项,提交将会撤消一个已存在提交的所有修改。

适用场景:
如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

git revert -n <commit_id>
# 本地目标分支撤销指定的commit_id
# 注意:做完上面的操作后,可能会出现冲突,需要先解决冲突,在git add,
# 然后使用 git commit 提交

git push
# 在上一条命令中,已经在本地分支中revert好,接下来让远程分支也有相同的效果,可以直接运行这条命令。
# 执行后,可以去代码托管网站查看

注意,git revert后填的commit_id不能是 merge操作产生的commit_id.

相关文章

  • 2021-05-11 git重置或还原已提交的代码--git r

    背景 在多人协作时,对代码的管理,难免会出现错误。如果出现错误,我们分析下来是要进行一些回退操作,那么解决办法有如...

  • 你可能在找的git操作

    还原单个文件 撤回commit提交(不丢失代码) git reset --soft HEAD^ git切换分支 查...

  • git入门

    一、git1、初始化git项目 2、git配置 3、提交代码 4、git 移动文件 5、git还原 6、回到某一个...

  • Git工具

    储藏和还原 2.重置 如果想要完全移动到某次提交 其他2种 子模块添加子模块 4.git的命令介绍 git命令介绍

  • 2019-12-17

    git切换分支,提交代码(合并分支) (1)git branch -r //查看所有的分支(注:git branc...

  • Git报错:fatal: Authentication fail

    提交代码到git,Git报错如下: 很明显说明git的认证失败,即用户名,密码输入错误。 使用如下指令重置用户名密...

  • git忽略文件不起作用解决方案(亲测有效)

    清除本地库的缓存git rm -r --cached .将本地代码重新加入git add .提交 .gitigno...

  • Git 提交代码流程

    git提交代码流程 git pull———>修改代码———>git commit————>git pull——...

  • git command help

    Git命令 查看、添加、提交、删除、找回,重置修改文件 查看文件diff 查看提交记录 Git 本地分支管理 查看...

  • git命令集合

    查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git show...

网友评论

      本文标题:2021-05-11 git重置或还原已提交的代码--git r

      本文链接:https://www.haomeiwen.com/subject/kikgdltx.html