文章目录
前言:一次多人协作下,因文件移动导致更新项目后部分代码丢失问题和解决方式记录,以及IDEA中git 代码撤销的几种方式实总结记录
Update后本地代码丢失处理方式
【场景】
1:代码文件冲突被覆盖情况
2:代码文件重命名或者被移动后代码更新丢失情况
【解决方式】
如果因为操作不当或者某些原因导致本地代码在update后被覆盖,部分文件内代码丢失情况,可以通过IDEA提供的Local History功能查看本地记录
这里有一个注意事项,那就是如果对应代码文件被重命名或者位置发生移动了,那么是无法通过右击文件功能面板展示Local History的方式找到。
针对这类问题可以将选择范围适当的提升到上级目录,比如针对test/a/a.java包结构的文件被移动至test/b/a.java的话,那么我们可以在IDEA中右击test目录查看Local History,然后找到该包路径下最近的一次【update from vcs】下面历史记录即可以看到移动或者重命名前文件的历史记录。
IDEA中未提交就撤销 rollback操作
场景
【1】修改被版本控制的代码,但是未commit,可以进行撤销
【2】添加新的文件,但是未commit,可以进行取消add操作
IDEA中Undo Commit操作
Undo Commit 这个操作只能在最近一次提交上使用,不能在其他提交上使用,最近一次 commit 上:
这就是撤销最近一次 commit,撤销之后,本地的修改相当于变成了已 add 但是未 commit 的状态,此时我们可以继续开发新代码,然后再 commit,再 push;或者也可以像前面介绍的那样,继续撤销操作。
IDEA中Revert Commit
Revert Commit 这个操作可以应用到所有的commit上,不同于 Undo Commit,Revert Commit 之后,会产生一条提交记录。 Revert Commit 其实也是提交,只不过提交的内容刚好相反,刚好刷掉已有内容。Revert Commit 操作可以用在所有的日志上,而不仅仅是刚刚提交的 commit。
找到需要回滚的地方,右键单击,选择 Revert Commit:
这里需要注意下,如果本地提交后还有未提交的代码,Revert Commit操作会尝试去回滚本地代码至对应版本的代码,即可能会刷掉本地未提交的代码,这个需要注意下。
Revert Commit和Undo commit比较
【1】Revert Commit可以回滚任何提交commit记录,操作的时候会自动生成一次回滚记录commit
【2】Undo commit仅回滚最近一次提交记录
【3】两个方式都可以针对已push的提交记录
【4】Undo commit比较适合自己提交代码有部分错误,操作完之后可以继续编辑原来的代码记录,修改完成后按照正常步骤,继续commit/push,即再次提交一次,算是二次修复调整再提交。
【5】Revert Commit是直接将对应记录全部回滚到前一个版本,是整体性的操作,算是直接否定上一次的提交。
版权归原作者 ZWZhangYu 所有, 如有侵权,请联系我们删除。