⭐ GitHub Star 与 Git reset/revert/checkout 的区别

112 阅读3分钟

⭐ GitHub Star 与 Git reset/revert/checkout 的区别

1. GitHub Star 是什么?

在 GitHub 上,点击仓库页面右上角的 ⭐「Star」按钮,就相当于给该仓库点了一个收藏。

aimili 艾米莉 ( 一款免费开源的 taimili.com )

艾米莉 是一款优雅便捷的  GitHub Star 管理和加星工具 ,基于 PHP & javascript 构建, 能对github 得 star fork follow watch 管理和提升,最适合github 的深度用户

image.png

作者:开源之眼
链接:juejin.cn/post/755246…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 作用

    • 表示你喜欢或关注这个项目。
    • 可以在你的 GitHub 主页的「Stars」列表里快速找到它。
    • 作者也能看到有多少人 star 了项目,这往往是项目人气的重要指标。
  • 注意

    • star 行为不会影响仓库内容,也不会在你的本地仓库产生任何变化。
    • 只是一个 社交/收藏功能

2. Git reset、revert、checkout 的区别

Git 是一个分布式版本控制系统,常常要处理「回退」或「切换」操作。resetrevertcheckout 是最容易混淆的三个命令。

2.1 git reset

  • 作用:把当前分支指针(HEAD)移动到指定的 commit。

  • 影响

    • 软模式 (--soft):保留工作区和暂存区的修改,只回退 commit 记录。
    • 混合模式 (--mixed,默认):保留工作区的修改,清空暂存区。
    • 硬模式 (--hard):彻底回退到某个 commit,工作区和暂存区修改都会丢失。
  • 典型场景:误提交后想回到某个历史版本。

# 回退到上一个提交,但保留修改
git reset --soft HEAD~1

# 完全回退,修改全部丢弃
git reset --hard HEAD~1

2.2 git revert

  • 作用:生成一个新的 commit,用来撤销某个历史 commit 的改动。

  • 影响

    • 保留历史记录,不会破坏已有的提交链。
    • 常用于已经推送到远程仓库的场景。
  • 典型场景:线上分支误提交了 bugfix,需要「撤销」但又不能破坏历史。

# 撤销最近一次提交
git revert HEAD

# 撤销指定提交
git revert <commit_id>

2.3 git checkout

  • 作用:切换分支、或将文件恢复到某个版本。

  • 影响

    • 切换到其他分支(或 commit)。
    • 还原某个文件到历史版本。
  • 典型场景

    • 临时查看旧版本代码。
    • 放弃对某个文件的修改。
# 切换到某个分支
git checkout dev

# 切换到某个历史 commit
git checkout <commit_id>

# 放弃对某个文件的修改
git checkout -- filename

3. 三者对比总结

命令主要作用是否修改历史是否生成新 commit典型用途
reset回退分支指针✅ 会修改历史(危险)❌ 不会生成新 commit本地回退,清理提交
revert撤销历史提交❌ 不修改历史✅ 会生成新 commit安全撤销,适合远程分支
checkout切换/还原❌ 不修改历史❌ 不生成新 commit切分支、查看旧代码、丢弃修改

4. GitHub Star 与 Git 本地命令的区别

  • Star:是 GitHub 提供的「社交收藏」功能,和代码内容、提交历史没有任何关系。
  • reset/revert/checkout:是 Git 的本地命令,用于版本回退、撤销、切换分支。

可以这么理解:

  • Star:像给一本书加书签,方便下次找。
  • reset/revert/checkout:是对书的内容进行修改、撤销或切换版本。

  • GitHub 的 Star 是社交层面的「收藏/点赞」。
  • Git 的 reset/revert/checkout 是版本管理层面的「回退/撤销/切换」。
  • 两者完全不是一个维度,但都是日常 Git/GitHub 使用中最容易遇到的高频功能。