本文主要是介绍阐述 Git 命令 reset 和 revert,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 概述
由于某次或某几次提交的代码污染了远程分支,需要对远程分支代码进行恢复操作,此时可以通过 git 的 reset 和 revert 命令进行恢复。
HEAD 是指向当前分支的最新提交的指针 ,每一次提交代码都会产生一个 commit id 来标识工作区的变更与改动。
2 Git Reset
git reset 的作用是将分支代码回滚到指定版本(即指定的代码提交点)上。
步骤:
(1)使用 “git log” 命令查看当前分支的提交记录。
(2)使用 “git reset --hard 某次提交的 commit id” 命令将本地的 HEAD 指向指定的版本上。
再次使用 “git log” 命令提交记录,确认本地分支的 reset 操作是否成功了。
(3)使用 “git push -f” 命令强行将变动推送到远程分支上,使远程分支的 HEAD 指向指定的版本上。
3 Git Revert
git revert 是用来删除某一次提交的内容。我们会发现在分支上面创建了一个新的 commit 提交。
步骤:
(1)使用 “git log” 命令查看当前分支的提交记录。
(2)使用 “git revert 某次提交的 commit id” 命令来删除某一个 commit 提交的内容。
当前版本与需要删除的版本之间有其他提交内容时,当都修改了同一个文件时,可能需要手动解决冲突。
(3)将本地变动推送到远程分支上。
4 总结
git reset 和 git revert 都是属于重新恢复工作区的方式,但这两种操作有着截然不同的结果:
(1)git reset 是将当前版本与指定版本之间的所有历史提交日志和提交内容全部删掉,将 HEAD 指向自己指定的提交版本,即回滚到指定版本。
(2)git revert 是只将指定的某次提交内容删除掉,不会删除历史提交日志。
如果当前版本与指定版本之间有其他提交内容时,其他提交内容和历史提交记录都不会被删除。
当指定版本与其他提交内容都修改了同一个文件时,可能需要手动解决冲突。
5 参考文献
(1)https://www.modb.pro/db/137424
这篇关于阐述 Git 命令 reset 和 revert的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!