使用码云和博客园学习简易教程
有了《使用开源中国(码云)托管代码》和《使用博客园进行学习》, 不少同学可以使用使用码云和博客园来学习了,也有不少同学还是误用。我以一周的学习过程为例,写一个step by step的教程。
我们以Linux(Ubuntu)环境下的学习为例,需要你掌握别出心裁的Linux命令学习法中的内容。
首先在Ubuntu中安装配置git,user.name中最好有学号信息:
sudo apt-get install git
git config --global user.name "20155200rocedu"
git config --global user.email "rocedu@qq.com"
我在码云上建立了课程组织BESTI.IS.Java2017,大家可以在组织中创建自己的学习项目:
现在助教和课代表已经是管理员了,参考2016-2017-2 《Java程序设计》课程学生博客和代码托管链接尽快把同学们加为“开发者”:
我们可以在组织中通过点击“新建项目”建立自己的学习项目了,项目名称中一定要体现学号信息,语言和.gitignore都选择Java:
建好的学习项目如下图所示:
我们在Ubuntu中通过git clone https://git.oschina.net/bestiisjava2017/ljp20155200_JavaProgramming.git
来克隆我们的学习项目,
需要注意的是,项目链接有两种方式HTTPS和SSH两种,我们选择复制HTTPS的链接,这样不需要公私钥对,只要码云的用户名和口令就行了。想用SSH的可以自己学习。
如上图,参考《Java学习笔记(第8版)》学习指导建立教材学习项目目录,我们先使用mkdir src
,mkdir bin
建立src和bin目录。我们通过vi src/Hello.java
或atom src/Hello.java
编辑代码,输入以下程序:
1 public class Hello {
2 public static void main(String []args){
3 System.out.println("Hello Java World!");
4 }
5 }
下面我们编译运行Hello.java程序。最简单的办法是到src目录中使用javac Hello.java
,Java Hello
进行编译和运行。这时Hello.java和Hello.class都在src目录中,如下图我们通过javac -d bin src/Hello.java
把Hello.class产生在bin目录中,通过cd bin
,java Hello
,cd ..
来运行Hello.class 并保证工作目录是项目根目录:
代码编译运行没有问题了,我们通过git add .
,git commit
把刚才的工作纳入版本控制,通过"git push"把我们的工作推送到码云上。
到码云上 我们可以看到本地的代码和脚本已经上传到网站上了。
编译运行我们可以通过vim run.sh
写一个脚本简化,以后可以使用Ant,Gradle等让编译自动化。
#!/bin/shjavac -d bin src/Hello.java
cd bin
java Hello
cd ..
注意要用chmod +x run.sh
给脚本加上执行权限。脚本测试没有问题,我们使用git add .
,git commit -m "add run script"
把脚本纳入版本控制中。
我们使用vim src/Hello.java
编辑Hello.java代码,加入一行打印己学号姓名的代码:
1 public class Hello {
2 public static void main(String []args){
3 System.out.println("Hello Java World!");
4 System.out.println("Hello 20155200 rocedu!");
5 }
6 }
通过脚本进行编译、运行的结果如下:
没有问题,我们使用git add .
,git commit -m "print student id and name"
把新加代码提交到版本控制系统中。
这样,参考积极主动敲代码,使用JUnit学习Java中的学习方法就可以进行实践学习了。遇到问题参考《使用JDB调试Java程序》,《Intellj IDEA 简易教程》进行调试。
我们每周的学习要通过在博客园发博客,码云 也是博客写作,预览的好平台,同时也把博客的写作纳入了版本控制。
我们先运行mkdir docs
,touch docs/java_homework_week1.md
创建docs目录和空文件“java_homework_week1.md”。
我们通过git add .
, git commit -m "init docs with empty java_homework_week1.md"
把作业博客纳入版本控制。
我们通过git push
把作业推送到码云 上:
在码云 上我们看到了docs文件夹:
点击docs文件夹,打开“java_homework_week1.md”,点击“编辑”就可以写作业了:
为了规范作业,我在2016-2017-2 《Java程序设计》教学进程中给出了作业模板的Markdown 内容,作业提交要严格按模板提交,我们先把模板拷贝过来,并进行提交:
提交说明是“拷贝作业模板”,这等价于 git commit -m "拷贝作业模板", 点击“提交到master”按钮。
要养成写一段完整文档提交一次的习惯。
作业模板包含以下要素,不要遗漏:
- 教材学习内容总结
- 教材学习中的问题和解决过程
- 代码调试中的问题和解决过程
- 代码托管
- 上周考试错题总结
- 其他(感悟、思考等,可选)
- 学习进度条
- 参考资料
我们给几个简单的例子,点击“编辑”:
首先把标题中的“学号”改成自己的学号,方便老师识别作者,然后把“第X周”改成“第一周”
要注意模板中“教材学习内容总结”,以前不少同学写作业在此浪费了大量时间,写总结要:
- 尽量简单的总结一下本周学习内容
- 尽量不要抄书,浪费时间
- 看懂就过,看不懂,学习有心得的记一下
这样才能体现差异化,当然你也可以预测老师会考什么,在此列出来备查,一定不能长篇大论,内容却千篇一律。
比如我们总结出了三个要点,在提交信息中写“完成学习要点”,然后点击“提交到master”按钮。
我们的学习模板参考了邹欣老师(博客,微博,豆瓣)设计的进度条,进度条用好对学习的促进作用非常大的,实践一年来效果不太好,主要各种原因造成学习数据乱填。
为此我设计了一节“代码托管”,要求学生有两个截图:
- 代码提交过程截图:运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
- 代码量截图:运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图
后来我写了个脚本直接把这个过程自动化了:
#!/bin/sh
clear
echo "//==========Today====================================="
echo "code summary infomation:"
find . -name "*.java" -mtime 0 | xargs cat | grep -v ^$ | wc -l
echo "documents summary infomation:"
find . -name "*.md" -mtime 0 | xargs cat | grep -v ^$ | wc -l
echo ""echo "//==========This Week================================="
echo "code summary infomation:"
find . -name "*.java" -mtime -7| xargs cat | grep -v ^$ | wc -l
echo "documents summary infomation:"
find . -name "*.md" -mtime -7| xargs cat | grep -v ^$ | wc -l
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-0 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-1 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-2 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-3 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-4 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-5 days"`
git log --pretty=format:"%h - %an,%ci: %s " | grep `date +%F --date="-6 days"`
echo ""
echo ""echo "//==========All================================="
echo "code summary infomation:"
find . -name "*.java"| xargs cat | grep -v ^$ | wc -l
echo "documents summary infomation:"
find . -name "*.md"| xargs cat | grep -v ^$ | wc -l
echo "commit history:"
git log --pretty=format:"%h - %an,%ci: %s "
在“代码托管”部分贴这个脚本的截图就可以了。可以看出自己每天,本周,这学期写了多少文档,多少代码。
“代码托管”的链接要改成自己的学习项目链接:
在码云上写的文档,要同步到自己的电脑上,只要运行git pull
就行了。
我们运行一下"statistics.sh"脚本,我们可以看到自己的学习进度:
每周作业中要对这个结果截图,使用博客园的上传图片功能可以生成Markdown图片链接![](http://images2015.cnblogs.com/blog/741560/201703/741560-20170302072056626-389386440.png)
我们把这个链接插入码云上的作业博客中:
完成了本周学习任务,我们可以通过“一键复制” 把作业博客的内容复制,然后去博客园班级中去提交作业了.
最后,完成本周的学习任务,一定要运行git push
就可以把本周学习成果推送到码云上。
总结一下我们课上的git使用流程是:
- 在码云上建立教材(个人项目,团队项目)项目目录
- 使用git clone https//... 克隆学习项目
- 作业博客可以在码云上完成,纳入版本控制
- 使用git pull可以把码云上的文档同步到本地PC上
- 平时学习,代码要在编译,运行,测试没有问题后进行如下操作
- git add .
- git commit -m "提交信息"
- 周末提交作业前
- git push
git commit -m "提交信息"中提交信息的写法参考《Commit message 和 Change log 编写指南》,最重要的一点是「One Thing One Commit」,不要写了一周的代码,周末提交一次,所有代码的msg都是「第XX周代码」
使用码云和博客园学习简易教程相关推荐
- 博客园皮肤-我的博客园皮肤设置教程
一.前言 好的博客皮肤能吸引更多的访问量,也可以使博主更有动力更新博客.今天看到一个博主的博客非常漂亮,突发奇想也打扮了一下自己的博客,虽然差距还有不小,也记录一下操作方法供大家参考. 二.操作 1. ...
- python讲师金角大王_python 金角大王博客园学习地址
https://www.cnblogs.com/alex3714/articles/5465198.html SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优 ...
- 微服务之consul(一) - 诗码者 - 博客园
一.概述 consul是google开源的一个使用go语言开发的服务发现.配置管理中心服务.内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value存储.多数据中心方案,不再需要依 ...
- MySQL性能优化之参数配置 - 愤怒的码农 - 博客园
MySQL性能优化之参数配置 1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个C ...
- 博客园代码高亮显示教程
https://www.cnblogs.com/hongrunhui/p/5910374.html?utm_source=debugrun&utm_medium=referral 转载于:ht ...
- python tkinter教程 博客园_python tkinter教程-事件绑定
一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑 ...
- 博客园是一个不错的学习交流的网站
通过一篇Oracle 12c rac搭建的文章,以及搭建过程出现了一些问题,觉得博客园挺好用,挺干净的.比csdn.以后就用博客园学习了. 转载于:https://www.cnblogs.com/cu ...
- 博客园与啊里云的故障假设:高需与低配(补充了降频论)
背景: 博客园自从上了啊里云,故障频繁,使得大伙每星期都在看故障报告,对503不知不觉也建立直了深厚的友谊. 故障从硬盘IO到SLB到应用级别的,各自怀疑,各自检测,都各自坚持没问题,但情况是问题依 ...
- 前端小白也能快速学会的博客园博客美化全攻略[附源码]
前端小白也能快速学会的博客园博客美化全攻略[附源码] 文章目录 前端小白也能快速学会的博客园博客美化全攻略[附源码] 美化方法论简介 准备工作 js权限申请 如何模仿一个博客园的自定义风格(样式css ...
最新文章
- 我现在编程方面的特别大的问题
- [译文] C# 8 已成旧闻, 向前, 抵达 C# 9!
- 柔性太阳能电池pdf_房车旅行如何做到电力无忧,那就选择一套合适的太阳能供电系统吧...
- 全球超算500强新榜发布:美国卫冕 中国力争
- matlab对多个矩阵循环,MATLAB:在不使用循环的情况下提取矩阵的多个部分
- Nancy 学习-进阶部分 继续跨平台
- java singletonlist_Java Collections singletonList()方法及示例
- jieba源码分析(一)
- 实践案例 | 数据可视化报表应用
- html实体编码_为什么涨薪的永远不是你?你的编码姿势对了吗?
- gtk 主循环函数
- 当软件定义汽车成为趋势,未来汽车是否可以理解为四个轮子上的超级计算机?
- potplayer如何设置以一帧一帧的逐帧播放播放?
- python matplotlib pColor 网格线 消除
- JAVA标准系列(JSRnbsp;208:nbsp;Javanbsp;Busi…
- xib、stoaryboard详解
- Fumark支持SLI双卡测试设置
- c语言忽略转义字符,C语言转义字符
- CentOS 修改源为163和指定epel源和Docker安装
- 转动嘎吱嘎吱的脖子码下18.04.28.的总结
热门文章
- 【Matlab】评估网络节点重要性
- 邮件的发送和接收过程-----简单邮件传输协议(SMTP)和邮件读取协议!!!
- html中点击a标签视频在新页面播放
- PostGIS 路线规划
- cef离屏渲染(osr)初识
- 【山外K60 KL26】jlink 下载失败的最详细解决办法
- 华为首部鸿蒙,华为首部鸿蒙手机P50即将发布
- 一文彻底搞懂执行上下文、VO、AO、Scope、[[scope]]、作用域链、闭包
- 在centeros搭建workpress
- 万亿停车产业,只是百度阿里腾讯华为、ETCP们数字化狂欢的“前菜”