Reset Or Checkout Or Revert

本贴最后更新于 1914 天前,其中的信息可能已经时异事殊

git reset

提交层面

会直接舍弃掉已经提交的版本

  • example:git reset HEAD~ --h
  • explain:将工作树,缓存区,提交恢复到上一个版本。
  • other usage:git reset HEAD~ --mixed(soft)
  • explian:--mixed 参数将只回复缓存区,提交。--soft 参数只恢复提交。

文件层面

会将提交中的版本放入缓存中

  • example:git reset HEAD~ myfile.txt
  • explain:将缓存恢复到上一个版本,对文件层面--mixed 等参数无效

git revert

提交层面

撤销掉某个提交,将撤销操作当做新的提交进行提交,此方法不会改写历史,是安全的,可用于公共分支。

  • example:git revert HEAD~
  • explain:取消上个版本的提交,并且将这个提交操作作为一个新的提交

文件层面

git checkout

提交层面

会将工作区切换到制定的版本

  • example:git checkout HEAD~
  • explain:将工作区切换到上上个版本,主要用于浏览 old version。最好在 checkout 的时候新建一个分支。git checkout HEAD~ -b tmp_branch

文件层面

将提交中的版本切换到工作区

  • example:git checkout myfile.txt HEAD~
  • explain:将上上个版本切换到工作区,这个操作将舍弃掉上上个版本之后的更改。
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...