Fine,自动机与软构实验轮番轰炸的一周,在自动机考完的晚上,写下这篇有关实验一的思考总结。

Git的使用

软构这门课提交实验的方式与以前的实验不一样,是使用github上传,因此git的使用就成了刚需。接下来讲一下本次实验中发现的几种上传方式。

1、命令行式(git组件)

这个就与Linux和Windows的cmd很像,通过输入内置命令来实现分布式仓库的管理。然后通过一系列git命令就可以实现对文件(夹)的管理。

下面展示一下成功的上传过程(来自实验报告):

把实验所需的文件git clone下来,clone下来的文件在当前cmd目录下

创建本地仓库,选在了GitHub桌面版默认位置(其实哪里都行只要git bash here):

(事实上后来我用的仓库不是这个,而是实验目录)

完事后把P2移入工作目录下,然后自动设置为package,把import文件头加上P2.前缀,否则会因为不是module而无法运行。

版本管理:git add * ,表示把所有文件加入管理,可以看出这里status有更新,且还没commit

Git log查看历史:

Submit阶段,在实验目录下右键git bash here

Git add .

Git commit -m “first commit”

git remote add origin https://github.com/ComputerScienceHIT/HIT-Lab1-120L020318.git

git -u push origin master

登陆后即可传输,结果如下。

MIT的实验界面要我们使用的是这种方法,我用的是https协议,并没有使用到ssh。然后讲一下这期间遇到的一些困难:

1、有一次修改报告时把副本一起传上去了,然后直接在GitHub上进行了delete操作,且并没有fetch回本地,因此之后几次push都不成功。当然更糟糕的是后面网络代理也出了问题,不得不使用git config将https和http删除重来再reset(顺序不太记得了,反正就这几个操作,至于代理怎么有问题,难道科学上网原因?),才得以修复。反正得到的教训就是一定得保持版本的一致,在push前一定要fetch/pull确保最新版本。

2、正常修改时,git push -u origin master时有时会抛出(初期,后期不会)fatal,这是把远端origin删除重新git remote add origin …即可。

2、GitHub桌面版上传

这个简单且粗暴,只需要你有科学上网的途径(doge),正常状况下在你首次登陆后,本地仓库都是默认建立在系统的“文档”的GitHub目录下,.git就是仓库的标志。当然也可以自己改,我就是改成了实验用的目录。

查看历史,自动检测changes,得到difference、一键push的功能也是非常好用。

3、idea上传

当然这个我没试过,不过貌似有学长和同学是这么干的,成功与否未知。只需要在VCS中启动git功能,在联系到GitHub账号,就可以通过右上角的箭头很轻松完成push。不过因为本身自己没试过,也是提供一种思路。

利用idea进行build

群里有大佬是用gradle,我仅仅是使用idea自带的功能构建jar文件。具体步骤也很简单(idea yyds),进入项目结构(project structure)-工件:

点击+号,选择具有依赖项的那个,然后选择主类,输出目录即可。生成后在jar所在目录下用命令行输入java -jar xxx.jar即可。此时需要注意JDK版本。值得小心的是,P1的幻方涉及到路径问题,因此得移到项目根目录下才有用。

还有一个细节,META-INF文件尽量放在不同文件夹下,否则可能主类会串。

Eclipse与IDEA的互通

Eclipse导入IDEA项目,workspace下打开eclipse,点击file-open projects from file system,出现下列界面后直接浏览文件夹就可以:

然后注意保持JDK的一致,在preference里compile等选项修改一下就可以。然后就是不要干idea里作为eclipse项目export的傻事,因为改变了文件结构从而出现一堆错误,最后发现居然什么都不管就可以。建议在GitHub或其他地方有之前正确版本的备份。

Idea导入eclipse:还是项目结构,这次选中模块,选中文件夹后作为eclipse项目导入。总之就挺简单的。。。

实验过程的一些教训:

1、Java的最大特色就是OOP,可以多学习一些库以达到事半功倍效果;

2、Java由于去年只有小学期四周有接触,基础语法并不是很熟练,得多加练习;

3、备份的重要性,玩脱了还可以救回来。

总之,实验一代码算法方面倒是没什么难度,主要就是工具的使用,将我印象深的内容都写在上面了,仅供参考。然后具体的一些操作步骤可能有误,因为是凭记忆写的,如有错误恳请指出!

HIT SC Lab1 小小的总结(主要是工具)相关推荐

  1. HIT CSAPP LAB1

    Linux下C工具应用 目 录 第1章 实验基本信息 - 4 - 1.1 实验目的 - 4 - 1.2 实验环境与工具 - 4 - 1.2.1 硬件环境 - 4 - 1.2.2 软件环境 - 4 - ...

  2. HIT 软件构造 过程、系统、工具

    软件构造的一般流程 编码,重构,调试,测试,性能分析,代码评审,构建,发布 coding 从用途上划分:编程语言.建模语言.配置语言.构建语言 从形态上划分:基于语言学的构建语言.基于数学的形式化构造 ...

  3. 使用SC命令使用(转)

    //1 sc语法 作为一个命令行工具,SC.exe可以用来测试你自己的系统,你可以设置一个批处理文件来使用不同的参数调用 SC.exe来控制服务.这个很有用,如果你想看看你的服务不断的启动和停止,我没 ...

  4. Windows遗产之RPC/DCOM:还在用吗,内部又有什么区别?

    2019独角兽企业重金招聘Python工程师标准>>> 从原理和使用程度上看,微软没有必要,也的确没有要废弃RPC/DCOM的迹象,但是显然这些技术会长期退入幕后当作基础设施了. 他 ...

  5. java 蓝桥杯算法训练 数组查找及替换

    试题 算法训练 数组查找及替换 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定某整数数组和某一整数b.要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序.如 ...

  6. Linux Telnet用法详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言, ...

  7. 非spring托管对象如何获取到spring托管对象

    非spring托管对象要获取到spring托管对象,主要是对ApplicationContext的获取 总共可以分为以下四种方式获取ApplicationContext: 一,通过spring配置文件 ...

  8. 内网渗透测试:域内权限维持思路总结

    我的Freebuf:https://www.freebuf.com/author/MrAnonymous 我的博客:https://whoamianony.top/ 文章目录 Windows 操作系统 ...

  9. 内网渗透测试:内网横向移动基础总结

    内网渗透测试:内网横向移动基础总结 横向移动 在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围.通过此类手段 ...

最新文章

  1. 《结对-贪吃蛇游戏-最终程序》
  2. 施耐德电气:2016年数据中心的三大关注领域
  3. 排序算法系列:插入排序算法
  4. 20140710文安c++面试总结
  5. 一个中年程序员遇到突发情况的一些胡言乱语
  6. Disk Quota磁盘配额
  7. ModelMap和ModelAndView的作用
  8. 成都睿铂盘点无人机航测三个极端恶劣环境的人员与设备防护指南
  9. PPDE三星私有协议
  10. 达梦数据库常用管理工具简介
  11. Proteus仿真C51利用双定时器输出占空比可变的PWM
  12. 博图注册表删除方法_arcgis 10.2安装时error1606以及error2753解决方法记录
  13. Axure制作播放器原型图-OpenGL FFmpeg QT Rtmp H264 视频监控 mp4播放
  14. 好玩Spring之TransactionSynchronization相关的几个类
  15. 2021年4月程序员工资统计排行
  16. DC-DC电源市场现状及未来发展趋势分析
  17. waf防火墙是什么?有什么作用
  18. html水平线 虚线
  19. 简单明了强烈推荐办公神器
  20. 网购直接试衣:顺丰快递全国518家便利店试营业

热门文章

  1. Android Fragment 兼容手机和平板
  2. 雅思词汇之万词plan:第6-365天
  3. nginx安装第三方模块nginx_upstream_check_module
  4. 点云分割和点云分类(点云语义分割)
  5. cocos cretor shader effect-the book of shader-3.形状
  6. 浏览器构成原理、UA信息演化介绍
  7. 【博学谷学习记录】超强总结,用心分享 | 产品经理还得懂点儿运营
  8. 浅析桌面精灵的实现 (转)
  9. 跟我学python之mysql操作详解 一、查询操作
  10. 计算机专业的口号运动会四字,常用运动会四字口号