git远程代码回滚(git reset 和 get revert)
git的工作流:
工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的。
暂存区:已经 git add xxx 进去,但未 git commit xxx 的。
本地分支:已经git commit -m xxx 提交到本地分支的。
代码回滚
在上传代码到远程仓库的时候,不免会出现问题,任何过程都有可能要回滚代码:
1、在工作区的代码
1 2 3 | git checkout -- a.txt # 丢弃某个文件,或者 git checkout -- . # 丢弃全部 |
注意:git checkout – . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果你之前压根都没有暂存或commit,那就是回到你上次pull下来的样子了。
2、代码git add到缓存区,并未commit提交
1 2 3 | git reset HEAD . 或者 git reset HEAD a.txt |
这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化
3、git commit到本地分支、但没有git push到远程
1 2 3 4 5 6 | git log # 得到你需要回退一次提交的commit id git reset --hard # 回到其中你想要的某个版 或者 git reset --hard HEAD^ # 回到最新的一次提交 或者 git reset HEAD^ # 此时代码保留,回到 git add 之前 |
4、git push把修改提交到远程仓库
1)通过git reset是直接删除指定的commit
1 2 3 4 5 | git log # 得到你需要回退一次提交的commit id git reset --hard git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除 |
2)通过git revert是用一次新的commit来回滚之前的commit
1 2 3 | git log # 得到你需要回退一次提交的commit id git revert # 撤销指定的版本,撤销也会作为一次提交进行保存 |
3) git revert 和 git reset的区别
- git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留;
- git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除
__EOF__

本文作者:lishuaics
本文链接:https://www.cnblogs.com/L-shuai/p/15814859.html
关于博主:IT小白
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/L-shuai/p/15814859.html
关于博主:IT小白
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人