11-1 时间机器
重来的机会
想象这样一个场景:
Aluka:有玩家反馈刺刀冲锋的时候非常容易受伤死亡,比较影响游戏体验,我想让冲锋中的玩家获得一定的伤害减免效果。Ted,你尽快完成,并在测试服上部署看看效果。
Ted(我):这没啥难的,洒洒水啦,两小时内搞定不成问题。
(紧张刺激的编码过程)
Ted:咦?怎么冲锋结束后玩家还有减伤效果?不对不对……
(修改一大批代码)
Ted:嗯,这样就能正常删除效果了,诶,怎么测试又挂了一堆?赶紧修复……
(修改一大批代码)
Ted:测试是过了,怎么和护盾插件冲突了?要不把所有的代码改回去试试……
(试图凭记忆恢复代码)
Ted:啊,怎么编译都失败了?项目依赖炸了?数据库都没了?完蛋了,这个月又要给 Aluka 交钱上班了……
类似的事情已经在现实项目中发生过很多次了,编写正确的新代码很难,而要撤销这些修改,将代码恢复到修改之前,则是难上加难。我们大多数人都没有过目不忘的能力,不可能在几天甚至几个月后还记得代码在修改前的样子,尽管 IDE 的撤销功能可以帮助我们,但它能回溯的修改也非常有限。
如果有一个工具能够记录下项目代码每时每刻的状态,并且允许我们随时回退到指定的时刻,那就太好了。当然,这样的工具已经有人制作出来了,这就是版本控制系统(Version Control System,VCS),它们能够记录代码在不同时刻的状态,并且可以稍后撤销部分或全部修改。
最常用的版本控制系统是 Git,这是 Linux 的开发者为管理其源代码而设计的。Git 由于其可扩展性的极大优势,已经成为业界主流的选择,并且在相当多的代码托管平台(包括 GitHub)已经成为事实上唯一的版本管理系统。
安装 Git
我们可不想在接下来开发插件时把时间浪费在『删除新添加的代码』这种事情上,所以让我们来试试版本管理系统吧!不过,由于 Git 既不是 Java 的一部分,也不随 IDEA 发行,因此必须另行安装它。
你可以从 Git 的官方网站 下载安装程序。如果这个网站无法访问或者下载较慢,那也可以从 这个镜像 下载 Windows 版本的安装程序。在镜像站下载文件时,请一定要选择形如 Git-x.x.x-64-bit.exe 这样的文件。
Git 的安装过程非常简单,只需要使用默认选项,一路点按 Next 按钮就 OK 了。
在安装完成后,打开一个新的终端,并在其中键入如下命令:
git -v
系统应当输出 Git 的版本信息:
git version 2.49.0.windows.1
当你读到这里时,Git 可能已经有了新的版本,所以即使输出的内容不完全一致也不必担心。与 Java 不同,Git 的版本不影响其主要功能的使用。
在 IDEA 中使用 Git
如果在安装 Git 时 IDEA 已经打开,那么要首先重启 IDEA。随后,打开一个项目,并按下 Alt + 0 呼出 Commit 面板。如果这个快捷键不奏效,那么也可以连按两下 Shift,并在弹出的窗口中键入 Commit,随后点击带有图标的 Commit 按钮。
点击弹出面板中的 Create Git repository 按钮,并在弹出的窗口中单击 OK,IDEA 将会为当前项目设置好 Git,并且 Commit 面板会变成这样:

如果到这里都没有问题的话,那么恭喜,我们已经设置好了 Git,接下来就可以开始使用它了!
今后在创建项目时,可以勾选 Create Git repository 复选框,IDEA 会连同项目一并初始化 Git,就不再需要手动启用 Git 了。