如何使用 vscode 优雅地完成 oop & oo 课程
本篇文章基于 Windows 的 vscode 提供,阅读之前请确认是否正确 ~
如果图片不清晰,请右键图片,选择“放大图像”或“在新标签页中打开图像”
oop : 使用命令行完成 git
下载 git
首先,我们在 git 官网下载 git :
下载之后,我们可以将其放在自己喜欢的位置(比如我喜欢放在 D 盘根目录):
点击图片中的 Git-2.46.0-64-bit.exe ,进行安装,安装时一路点击 Next 即可。
配置 git
接下来,我们来进行 git 的配置。首先我们在任意文件夹下打开 powershell 终端(比如我现在在写博客的文件夹):
接着依次输入以下两条指令:
1 | git config --global user.name "你的昵称" |
(要把 你的昵称
和 你的邮箱
换成你的昵称和邮箱,不会有人原封不动写上去吧)
为了检查是否设置成功,可以输入以下指令进行检查:
1 | git config --global --list |
如果出现类似以下内容,证明昵称和邮箱设置成功:
1 | user.name=Kamonto |
(这里的值是我的昵称和邮箱,你的值应该是你刚才填的昵称和邮箱)
这样,我们就完成了 git 的配置。在之后,使用 powershell 或 bash 终端都可以进行 git 指令的操作。
配置 SSH Key
在任意目录下的 powershell 或 bash 终端输入如下指令,生成 SSH Key 密钥:
1 | ssh-keygen -t rsa -C "你的邮箱" |
在生成时,我们需要输入保存密钥的地址,这里我们选择它推荐的地址即可:
1 | Generating public/private rsa key pair. |
(这里每个人的用户名是不同的,我的用户名是 24502 )
这个地址位于家目录下的 .ssh 文件夹,等价于 ~/.ssh/id_rsa
,记住这个 ~/.ssh
文件夹,过后有用。
输入地址之后,我们还可以为其设置密码,这里如果直接按回车跳过的话就是不设置密码。顺带一提,我个人是比较喜欢设置密码的。
这样我们就成功生成了 SSH Key ,下面我们要在 oop 课程的 gitlab 平台添加这个密钥。
打开 gitlab 平台的任意界面,点击右上角的图像,选择 Edit profile ,进入个人主页,然后就能看到左侧的 SSH Key 选项了。
在上述界面的 Key 一栏中,我们需要输入我们的公钥,这个公钥储存在 ~/.ssh/id_rsa.pub
中(如果你刚才将密钥存储在默认位置 ~/.ssh/id_rsa
的话;如果不是的话,将你刚才存储密钥的位置后面加上 .pub
即可)。
我们在终端输入 cat ~/.ssh/id_rsa.pub
,复制输出的全部内容,这个内容的格式应该如下:
1 | ssh-rsa |
这个就是我们的公钥,我们将其复制到刚才图中界面的 Key 一栏中。对于 Title 一栏,我们可以随便给密钥起个名字,起什么都没有关系。而 Expiration date 是密钥的失效日期,如果你不想在上机实验的时候 git 突然失效,那我劝你把这个日期设远一些,或者设在寒暑假期间。<- 个人惨痛经历
最后点击下方的 Add key ,我们就可以使用 git 了。
使用 git 进行版本管理 - git clone
因为这是一个入门教程,在这里只介绍最基本的 git 版本管理,确保你能成功提交第一次作业。如果想学习更多的 git 知识,可以参考这本 git 神书:Pro Git
现在我们学习第一个 git 指令:git clone
。以下面的例子为例,我想将下图中的作业内容复制在本地,该如何操作呢?
我们首先点击页面上蓝色的 clone ,使用 Clone with SSH 复制下仓库的地址。紧接着,我们使用 vscode 打开我们想将其复制到的文件夹,我们这里以下图中的 oop_test
文件夹为例:
在 powershell 或 bash 终端输入 git clone 刚才复制下来的地址
,输入密码(如果你刚才设置了的话),就可以将远程仓库的内容复制到本地了。(注意:一定要确认终端处于当前文件夹下!如果不在的话,可以使用 cd
指令进入想要的文件夹)
现在我们能够看到,oop_test
文件夹下出现了一个文件夹,名字为我们刚才复制的远程仓库的名字,这个文件夹的内容就是远程仓库的内容。
这里要注意,即使我们的作业仓库最开始是空的,也需要在最开始的时候将其 git clone
下来。这是因为由 git clone
复制下来的文件夹中记载着远程仓库的位置,这样我们写完作业后才能使用 git push
将我们的作业推送到远程仓库中(其实用 git init
和 git remote add
也能够实现,详情可以参考上文中的 Git Pro 教程)。
这里插一句,上一段中的“记载着”到底是如何实现的呢?我们观察从远程仓库复制下来的文件夹,其中会有一个文件夹的名字名为 .git
(这是一个隐藏文件,需要在文件夹中选择“显示隐藏文件”选项,或在终端中使用 ls -a
查看)。请千万记住,这个文件夹里存放着这个仓库所有的版本管理信息,千万不要移动、修改、删除它!
接下来,我们需要将终端切换到 .git
文件所在的目录(即远程仓库的根目录),这是非常重要的一步,千万不要忘记!你可以使用 cd 文件夹所在位置
进入该文件夹,例如上图中我就使用了 cd ooprehomework_2024_xxxxxxxx_hw_4
进行了切换;或者直接在 vscode 的左上角“文件”处打开你刚才复制下来的文件夹。这里我推荐后者,因为当有多个 java 工程在同一个文件夹下的话,前者会导致无法通过编译,这里我们在下一章会细说,先按下不表。如果你使用的是 bash 终端的话,你就可以像上图中在终端所在位置的后面看到当前分支的名字(一般是 master)。下面你就可以着手完成作业了!
使用 git 进行版本管理 - git add, git commit, git push
在完成作业后,我们肯定要提交我们的作业,但这也是一个巨大的挑战。我本人在最开始接触 oop 的时候真的很崩溃,因为从来没有哪个科目能让我连作业都交不上去的,所以我想让屏幕前的你能够顺利地完成这个挑战!
目前,我们修改了一些文件,所以很多文件的右面出现了 M 字样(即 Modified)。此外,如果我们添加了新文件,就会出现 U 字样(即 Untracked),删除文件会出现 D 字样(即 deleted)。这时候就需要我们使用 git add
指令对其进行暂存了。
如果想对某个文件进行暂存,就可以输入 git add 文件相对位置
进行暂存。这里的相对位置指的是相对远程仓库的根目录的位置,如上图中 Book.java
的相对位置为 src/Book.java
。
如果想对所有 .java
类型的文件暂存,可以使用通配符 *
来解决,例如上图中情况就可以使用 git add *.java
进行暂存。更粗暴一点的话,使用 git add .
可以对当前文件夹下所有未暂存的文件进行暂存。
当然,随着我们日后的学习,我们也会发现有些东西是不适合推送至远程仓库的,例如下图中,我在其中加入了一些用于辅助的文件夹(你们会在之后再见到它们的)。实际上,如果把它们直接晾在那里,不去 git add
它们也可以,但是绿色的 U 实在是有点太显眼了,这时候我们就可以创建一个名为 .gitignore
的文件,在其中写下我们不需要上传至远程仓库的文件名。这个文件名可以是文件,也可以是文件夹,总之可以是相对于当前目录的任何路径。另外别忘了,.gitignore
文件本身也要写进去!
接下来,我们需要将暂存的文件进行保存,这时候就需要用到 git commit
指令了。在终端中输入 git commit -m "更新信息"
,就可以将当前的所有更改保存至 .git
文件中了。理论上来说,我还是建议好好写一写更新信息的(虽然我本人写得也很潦草),毕竟这个东西会永远留在仓库中,可能会有些尴尬。
最后,我们在经历可能一次可能多次的 git commit
之后,可以使用 git push
指令(就是 git push
,原封不动输入进终端就可以)把我们之前的每一次保存上传至远程的仓库中。这个环节也需要输入密码(如果你之前有设置的话),不要以为是卡死了!完成这一步之后,我们就可以在 gitlab 上看到我们上传的代码了,同时也可以在 oo 课程平台提交作业了。
很多时候,我们都很难一次提交就通过全部评测,在提交之后往往还需要再修改,不过不要担心,只要在修改之后重复上述三个步骤,就没有任何问题了!
再说一句题外话,因为上述三个操作的撤销都比较复杂,所以我们可以尽量避免错误执行上述三条指令的情况,在执行这些指令之前,我们可以在终端输入 git status
,这条指令可以帮助我们看到当前所有文件的状态,避免误将某些不该暂存的文件暂存、修改了不该修改的文件等异常行为。
oop : 运行 java 程序
vscode 中的 java 工程
虽然我们刚才已经学习到如何交作业了,但是我怕你还不会在 vscode 里编译运行 java 文件,所以我们接下来学习一下如何在 vscode 中完成一个 java 工程。
和我们大一学习过的程序设计和数据结构不同,我们以后的工程不再是只靠一个文件就能完成的了。在刚才的例子中我们也看到了,一次作业的内容往往由一堆 java 文件(以后还可能会有其它类型的文件)组成,这就需要引入一个更大的概念——工程。上述的所有文件都属于这个工程的一部分,我们也是围绕整个工程进行编程的。
不同于 idea 等喂饭到嘴边的工具,vscode 中并没有提供一个界面让我们手动选择项目工程的范围。但是说来也简单,vscode 认为一个工程的范围其实就是当前所打开的文件夹,比如说我们上面的所有图片中,工程的范围都是 oop_test
文件夹。
为什么我们要了解工程的范围呢?这其实直接关系到我们的 java 代码能否正常通过编译,例如下图中,我的 oop
文件夹中有 oop 课程中所有作业的工程,但如果在这个界面下运行 java 程序,就会导致任何一个工程都无法正常编译运行。这是因为 vscode 认为它们都隶属于一个大工程,如果把它们都看成一个整体的话,自然是没有办法解释的。
正确的做法是选择其中的一个文件夹打开,确保左侧的列表中没有多余的 java 文件:
了解了工程的概念后,我们就可以开始编程了。
java 程序的编译运行
写完作业之后,我们肯定需要在本地运行我们的代码进行测试,那么 vscode 中如何运行 java 程序呢?我们知道,vscode 是一款轻量级的文本编辑器,所以肯定是不会自带 java 编译器的,所以我们要去插件市场下载 java 相关的插件,后续我们也会经常下载插件来辅助我们完成任务。
来到插件市场,下载这个插件:Extension Pack for Java :
接下来,我们回到编辑界面,点击任意一个 java 文件,这时你会看到左下角在加载一个叫 JAVA PROJECTS 的菜单:
这就证明了我们已经成功为这个项目加载了 java 插件。在编辑区域右键,选择 Run Java 或 Debug Java ,再在上方选择主函数所在文件(只有打开工程后第一次运行,且不是在主函数所在文件选择的 Run Java 和 Debug Java ,才会出现这个选项),就可以进入运行或者调试阶段了。