文章目录

  • Update后本地代码丢失处理方式
  • IDEA中未提交就撤销 rollback操作
  • IDEA中Undo Commit操作
  • IDEA中Revert Commit
  • Revert Commit和Undo commit比较


前言:一次多人协作下,因文件移动导致更新项目后部分代码丢失问题和解决方式记录,以及IDEA中git 代码撤销的几种方式实总结记录

Update后本地代码丢失处理方式

【场景】

1:代码文件冲突被覆盖情况

2:代码文件重命名或者被移动后代码更新丢失情况

【解决方式】

如果因为操作不当或者某些原因导致本地代码在update后被覆盖,部分文件内代码丢失情况,可以通过IDEA提供的Local History功能查看本地记录

idea的项目没有Git仓库了 idea git没了_idea的项目没有Git仓库了


这里有一个注意事项,那就是如果对应代码文件被重命名或者位置发生移动了,那么是无法通过右击文件功能面板展示Local History的方式找到。针对这类问题可以将选择范围适当的提升到上级目录,比如针对test/a/a.java包结构的文件被移动至test/b/a.java的话,那么我们可以在IDEA中右击test目录查看Local History,然后找到该包路径下最近的一次【update from vcs】下面历史记录即可以看到移动或者重命名前文件的历史记录。

idea的项目没有Git仓库了 idea git没了_git_02

IDEA中未提交就撤销 rollback操作

场景

【1】修改被版本控制的代码,但是未commit,可以进行撤销

【2】添加新的文件,但是未commit,可以进行取消add操作

idea的项目没有Git仓库了 idea git没了_回滚_03

IDEA中Undo Commit操作

Undo Commit 这个操作只能在最近一次提交上使用,不能在其他提交上使用,最近一次 commit 上:

idea的项目没有Git仓库了 idea git没了_java_04


这就是撤销最近一次 commit,撤销之后,本地的修改相当于变成了已 add 但是未 commit 的状态,此时我们可以继续开发新代码,然后再 commit,再 push;或者也可以像前面介绍的那样,继续撤销操作。

IDEA中Revert Commit

Revert Commit 这个操作可以应用到所有的commit上,不同于 Undo Commit,Revert Commit 之后,会产生一条提交记录。 Revert Commit 其实也是提交,只不过提交的内容刚好相反,刚好刷掉已有内容。Revert Commit 操作可以用在所有的日志上,而不仅仅是刚刚提交的 commit。

找到需要回滚的地方,右键单击,选择 Revert Commit:

idea的项目没有Git仓库了 idea git没了_java_05


这里需要注意下,如果本地提交后还有未提交的代码,Revert Commit操作会尝试去回滚本地代码至对应版本的代码,即可能会刷掉本地未提交的代码,这个需要注意下。

Revert Commit和Undo commit比较

【1】Revert Commit可以回滚任何提交commit记录,操作的时候会自动生成一次回滚记录commit

【2】Undo commit仅回滚最近一次提交记录

【3】两个方式都可以针对已push的提交记录

【4】Undo commit比较适合自己提交代码有部分错误,操作完之后可以继续编辑原来的代码记录,修改完成后按照正常步骤,继续commit/push,即再次提交一次,算是二次修复调整再提交。

【5】Revert Commit是直接将对应记录全部回滚到前一个版本,是整体性的操作,算是直接否定上一次的提交。