郭卫东 发表于 2025-1-2 20:33:49

新版IDEA中Git的使用(三)——回滚代码

阐明:前面先容了在新版IDEA中Git的基本操作、分支操作,本文先容一下在新版IDEA中,如何回滚代码;
分以下三个阶段来先容:


[*] 未Commit的文件;
[*] 已经Commit,但未push的文件;
[*] 已经push的文件;
未Commit

对于未Commit的文件,回滚代码,可以在Commit窗口,选中文件,鼠标右键,选择Rollback,即可回滚代码,恢复到未修改状态;
https://i-blog.csdnimg.cn/blog_migrate/df64923262159ed8bd3a697d1b007039.png
弹出窗口,选择Rollback
https://i-blog.csdnimg.cn/blog_migrate/806534aea738f3586eea2cead04446e8.png
文件恢复到未修改状态的黑色;
https://i-blog.csdnimg.cn/blog_migrate/65e8ffbc17cc80f78f0277890ea270a7.png
而对于新增的文件,直接在Commit界面里删掉即可,固然,也可以选中,点Rollback,但文件会加入到未追踪状态,照旧会出现在IDEA中,就不如直接删撤除。
https://i-blog.csdnimg.cn/blog_migrate/60ff00753b144028fd6ccb4fde0a05a9.png
未push

比如,我新增了一个文件、修改了一个文件,提交了,但是还没有push到长途堆栈(可以看到分支名后面有箭头),此时我想回滚这次提交;
https://i-blog.csdnimg.cn/blog_migrate/098f6496530cea289c1e1b9af716566d.png
可以选择这次提交前面的提交,鼠标右键,点击Reset Current Branch to Here,表示将代码回滚到这次提交的状态;
https://i-blog.csdnimg.cn/blog_migrate/df37dc1a6164bd52d5348617f0d0ff32.png
点击后,会出现下面几种模式,选择如那边理回退的文件;
https://i-blog.csdnimg.cn/blog_migrate/5f7f0e421b0afcc728896fc8d955b62b.png


[*] Soft:修改的文件、新增的文件都恢复到暂存区;
[*] Mixed(默认):修改的文件加入到暂存区,新增的文件恢复到未追踪;
[*] Hard:修改的文件、新增的文件都丢失,而且当前分支未commit的文件也恢复(新增的删掉,修改的恢复原样);
[*] Keep:修改的文件、新增的文件都丢失,当前分支未commit的文件,新增的文件恢复到未追踪,修改的文件保持原样;
可以根据本身的需要举行选择,选择前想清楚,回退的这部分代码是怎么来的:


[*] 如果是push的,那么应该选择Soft、Mixed,避免回退子女码丢失;
[*] 如果是pull的,那么应该选择Hard、Keep,避免多出来的代码,影响本身分支;
不论选择哪一种,都需要你有良好的风俗:及时处理掉change中的文件,该commit的commit的,该fallback的fallback,该暂存的暂存,保证在push、pull时,本身的代码都是一种最佳的状态,如许当发生冲突时,才华有操作空间。
回滚未push的代码,除此之外,另有以下几种:
https://i-blog.csdnimg.cn/blog_migrate/6b0c507d5adc98a29caa2fe7a7a56e23.png


[*] Undo Commit…:回滚近来一次提交;
[*] Revert Commit:回滚某一次提交,并留下回滚记录;
[*] Drop Commit:回滚某一次提交,并不留下回滚记录;
以上操作,均是单次操作的回滚,即仅回滚此次操作的文件,比方A提交创建了文件,B提交修改了文件,如果回滚A提交,B提交中修改的文件就不存在了,就会发生冲突。
已push

比方现在,我将新增的代码,add.txt文件push到长途堆栈。push上去后发现这段代码有题目,或者我想修改一下comment内容;
https://i-blog.csdnimg.cn/blog_migrate/1cd151795c426619696423bfc8c13086.png
可以这么做,首先回滚本地的提交;
https://i-blog.csdnimg.cn/blog_migrate/66403ea1b4ad7a1c1d80de741845a5a7.png
修改代码或者修改Comment信息后,再push
https://i-blog.csdnimg.cn/blog_migrate/cb5a57e848a0b9c9df9337bf92051f03.png
这次选择Push下面的这个操作,Force Push;
https://i-blog.csdnimg.cn/blog_migrate/633f23145800f93f4b2d28969953b09d.png
选择Force Push
https://i-blog.csdnimg.cn/blog_migrate/04e6beeeb7278dbe589b5ef29acf64b4.png
长途堆栈的代码就被本次push冲掉了;
https://i-blog.csdnimg.cn/blog_migrate/ccfa995a4df59bdd033653e2d7b60511.png
已经push的提交不保举使用回滚,建议修改代码、文件后重新push一次。如果该分支有其他同事在push代码,上面这种方法可能会冲掉同事push的代码,有风险。
总结

本文先容在新版IDEA中Git关于回滚的操作,参考B站UP主【小陈努力码代码】的视频 IDEA小技巧-Git的回滚&&强推&&代码找回

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 新版IDEA中Git的使用(三)——回滚代码