回退用 git revert 还是 git reset?

  • git revert 会生成一个新的 commit 来记录此次操作;
  • git reset 是把 HEAD 指针向前挪动一次,会减少一个 commit。

回退用 git revert 回退还是用 git reset,核心就一点:
是否需要记录这次回退

如果需要记录这次回退,就用 git revert,反之用 git reset

是否需要,在遵循 git 基本原则的前提下,也有一些经验之谈。

公共分支的回退一般用 git revert

因为如果用 git reset, 后面推送到远程仓库需要强制 push 来修改历史提交记录,但是 git 的一般原则是不要破坏公共分支的历史提交记录,故公共分支上的回退一般用 git revert。还有就是,对公共分支的修改,本来就应该记录 。最后一点就是,如果用 git reset 修改了公共分支的历史提交记录,其他同事都将不得不使用 git reset --hard origin/publicBranch 命令来将远程仓库代码同步到本地,这很蛋疼,因为本地未提交的代码都会被抹除。

非公共分支的回退一般用 git reset

就我平时的开发而言,在个人的分支上回退,git reset 更合适。比如你刚提交完一次代码,突然发现里面有句注释有错别字,你想修改,这个时候就可以直接用 git reset HEAD^ 将上一次提交的代码回退到工作区,修改错别字后重新提交。这种情况下就很适合 git reset,因为没有多余的记录,并且也不需要记录,你以及你的同事都不 care "修改错别字" 这一条记录。

相关推荐
Brilliantwxx1 小时前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
.Hypocritical.1 天前
Git 全套实操|配置 /.gitignore/ 分支合并 / 冲突解决 /git stash 完整教程
git
来日方长。。。。long1 天前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes
其实防守也摸鱼1 天前
VS Code Git 工作树:解锁多分支并行开发新体验
数据库·git·安全·oracle·架构·自动化
ERD Online1 天前
我们怎么设计 good first issue:让第一个 PR 两小时内合入
数据库·git·后端·开源·issue
Python私教2 天前
Codex 自动写 Commit 够安全吗?一套证据化 Git 提交流程
人工智能·git·后端
果果燕2 天前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
美味蛋炒饭.2 天前
Git 版本控制(下)
开发语言·git·学习·总结·后端开发
互联网中的一颗神经元2 天前
09 — .git 地图:打开那个隐藏文件夹
大数据·git·elasticsearch
Patrick_Wilson2 天前
你知道 git check 的故事吗
git·程序员·命令行