git 使用学习笔记
2016-01-01 19:50
274 查看
说到github,以前都是听到居多,并没有使用过。直到有一天,公司需要爬虫程序(我们公司是电商,要爬虫程序去获取一些网站的商品信息,哈哈,是不是很猥琐),然后一个哥们介绍说使用在github一款叫webcollection的单机爬虫,由此结实了伟大的github!
最近,一个爱看小说的朋友说,自己爱看小说,但是小说更新的时间点不定,每次都是自己在网站刷新小说的更新,绝大部分次数都是失望而归,问我有什么好办法。我一时兴起,就说,那还不简单,来,我给你写个程序,每当小说的章节有更新,就邮件通知你呗!朋友当然很开心,说搞定请我吃饭!哈哈,既然说了,那就得做到了。
我分析了一下,如果要完成功能,简单做的话,只需要三个环节,
第一个环节:定时器,定时或者定频率的去爬取网页内容(即更新的小说章节),实现方法,可以是前端的js的setinterval,或者是后台的spring定时器或者timer
第二个环节:爬取网页内容,比较章节数字大小。爬取网页内容,不外乎是在后台发送一个http请求,然后把返回的内容,使用jsoup来解析;比较章节数字大小,只有更新的(获取章节数比当前最新章节数大的)才去保存,这里,可能需要使用数据库了。
第三个环节:发送邮件。使用java的mail.jar包的支持,发送提醒邮件到指定用户邮箱。
当然,详细点的话,可能还有其他的问题,比如,
1.爬取的小说网站,本来是更新很快的,但是,突然更新很不及时了,那这样怎么办呢,需要重新找网站爬取,然后从新编码、部署?
2.代码ok了,打成war包了,部署在哪呢?
3.数据库也必须要使用外网的数据库,不能使用本地的数据库了。
4.还有,代码可能一次性是写不完的,除了在家编码外,我还想在其他地方完善代码,或者我想代码回退,那我怎么做呢?
首先,解决版本控制的问题吧,也就是第四个问题。版本控制,我第一个念头就是svn(哈哈,读者是不是同感),马上搜索了免费且稳定的svn服务器。
结果,只看到googleCode等寥寥,更悲催的,访问google还要翻墙,fuck!果断放弃svn,想想,之前使用的git,不是也能胜任版本控制功能?哈哈,好的,
马上切换到git频道!
git的使用
1.注册Git
你使用Git起码要在github上注册吧?注册git账号流程,基本是傻瓜式,进入github网站,一直填写再下一步。。下一步。。。(这个真的不能不会哦)
2.git的客户端安装
2.1
git windows 2.5.1 *64 下载
2.2 git的安装,直接是exe文件,直接傻瓜式的下一步下一步。。。
安装好了,在开始菜单就能看的
![](http://img.blog.csdn.net/20160101172949514?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
,恭喜,安装完成!
2.3 查看下git的版本
![](http://img.blog.csdn.net/20160101172954560?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3.设置用户和邮箱,标示本机器
![](http://img.blog.csdn.net/20160101173747901?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
4.创建版本库
版本库,记录修改和增加等操作,便于任何时候回退版本。
![](http://img.blog.csdn.net/20160101174559745?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20160101174754600)
查看novelWarn文件夹,可以看到,下面多了一个隐藏的.git文件夹,和svn的.svn文件夹类似,若无必要,请不要操作。
![](http://img.blog.csdn.net/20160101175026985)
5.添加文件到git版本库
所有的版本控制工具,只能控制代码、txt等的内容改动,对图片等二进制的文件,只能判断是否改变,但是,图片这些具体改了什么,git也是爱莫能助!
![](http://img.blog.csdn.net/20160101180420458)
6.git的远程仓库
远程仓库,这就是我们今天要说的重中之重啦!做这一步之前,github的账号,必须要注册号的哦!
因为本地和远程,是通过ssh加密的,所以,本地需要有点设置:
第一步,创建ssh Key。在user下面,看是否有.ssh目录,比如我的本地
![](http://img.blog.csdn.net/20160101181149288)
。。。。 好吧,得手动创建一个啦!
创建的命令是 sshkeygen -t -rsa -C 'abc@163.com' ,如果直接cmd命令里敲,回答你的肯定是这个冷冰冰的界面
![](http://img.blog.csdn.net/20160101181546894)
原来,我们要在电脑的环境变量里增加ssh-keygen!请参考ssh-keygen
不是内部或外部命令
![](http://img.blog.csdn.net/20160101182444202)
id_rsa是私钥,不可告诉别人的,pub是公钥,可以告诉别人滴!
![](http://img.blog.csdn.net/20160101182955866)
可以看到自己添加的key啦!
![](http://img.blog.csdn.net/20160101183002506)
1.如何创建远程仓库呢?
首先,登录github上,然后在右上角找到“create a new repo”创建一个新的仓库。如下:
![](file:///e:/360浏览器/360se6/User Data/temp/6941baebgw1eloypmocbsj20u40gttbc.jpg)
![](file:///e:/360浏览器/360se6/User Data/temp/6941baebgw1eloypmocbsj20u40gttbc.jpg)
![](file:///e:/360浏览器/360se6/User Data/temp/6941baebgw1eloypmocbsj20u40gttbc.jpg)
![](http://img.blog.csdn.net/20160101183735385)
在Repository name填入testgit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
![](http://img.blog.csdn.net/20160101183819015)
目前,在GitHub上的这个testgit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。现在,我们根据GitHub的提示,在本地的testgit仓库下运行命令:
git remote add origin https://@xxx/novelWarn.git![](http://img.blog.csdn.net/20160101185822768)
把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了
![](http://img.blog.csdn.net/20160101194738545)
![](http://img.blog.csdn.net/20160101194743825)
好,到这里终于能提交到github了,吃饭去了!
更加具体的github使用,请戳我
最近,一个爱看小说的朋友说,自己爱看小说,但是小说更新的时间点不定,每次都是自己在网站刷新小说的更新,绝大部分次数都是失望而归,问我有什么好办法。我一时兴起,就说,那还不简单,来,我给你写个程序,每当小说的章节有更新,就邮件通知你呗!朋友当然很开心,说搞定请我吃饭!哈哈,既然说了,那就得做到了。
我分析了一下,如果要完成功能,简单做的话,只需要三个环节,
第一个环节:定时器,定时或者定频率的去爬取网页内容(即更新的小说章节),实现方法,可以是前端的js的setinterval,或者是后台的spring定时器或者timer
第二个环节:爬取网页内容,比较章节数字大小。爬取网页内容,不外乎是在后台发送一个http请求,然后把返回的内容,使用jsoup来解析;比较章节数字大小,只有更新的(获取章节数比当前最新章节数大的)才去保存,这里,可能需要使用数据库了。
第三个环节:发送邮件。使用java的mail.jar包的支持,发送提醒邮件到指定用户邮箱。
当然,详细点的话,可能还有其他的问题,比如,
1.爬取的小说网站,本来是更新很快的,但是,突然更新很不及时了,那这样怎么办呢,需要重新找网站爬取,然后从新编码、部署?
2.代码ok了,打成war包了,部署在哪呢?
3.数据库也必须要使用外网的数据库,不能使用本地的数据库了。
4.还有,代码可能一次性是写不完的,除了在家编码外,我还想在其他地方完善代码,或者我想代码回退,那我怎么做呢?
首先,解决版本控制的问题吧,也就是第四个问题。版本控制,我第一个念头就是svn(哈哈,读者是不是同感),马上搜索了免费且稳定的svn服务器。
结果,只看到googleCode等寥寥,更悲催的,访问google还要翻墙,fuck!果断放弃svn,想想,之前使用的git,不是也能胜任版本控制功能?哈哈,好的,
马上切换到git频道!
git的使用
1.注册Git
你使用Git起码要在github上注册吧?注册git账号流程,基本是傻瓜式,进入github网站,一直填写再下一步。。下一步。。。(这个真的不能不会哦)
2.git的客户端安装
2.1
git windows 2.5.1 *64 下载
2.2 git的安装,直接是exe文件,直接傻瓜式的下一步下一步。。。
安装好了,在开始菜单就能看的
,恭喜,安装完成!
2.3 查看下git的版本
3.设置用户和邮箱,标示本机器
4.创建版本库
版本库,记录修改和增加等操作,便于任何时候回退版本。
查看novelWarn文件夹,可以看到,下面多了一个隐藏的.git文件夹,和svn的.svn文件夹类似,若无必要,请不要操作。
5.添加文件到git版本库
所有的版本控制工具,只能控制代码、txt等的内容改动,对图片等二进制的文件,只能判断是否改变,但是,图片这些具体改了什么,git也是爱莫能助!
6.git的远程仓库
远程仓库,这就是我们今天要说的重中之重啦!做这一步之前,github的账号,必须要注册号的哦!
因为本地和远程,是通过ssh加密的,所以,本地需要有点设置:
第一步,创建ssh Key。在user下面,看是否有.ssh目录,比如我的本地
。。。。 好吧,得手动创建一个啦!
创建的命令是 sshkeygen -t -rsa -C 'abc@163.com' ,如果直接cmd命令里敲,回答你的肯定是这个冷冰冰的界面
原来,我们要在电脑的环境变量里增加ssh-keygen!请参考ssh-keygen
不是内部或外部命令
id_rsa是私钥,不可告诉别人的,pub是公钥,可以告诉别人滴!
可以看到自己添加的key啦!
1.如何创建远程仓库呢?
首先,登录github上,然后在右上角找到“create a new repo”创建一个新的仓库。如下:
![](file:///e:/360浏览器/360se6/User Data/temp/6941baebgw1eloypmocbsj20u40gttbc.jpg)
![](file:///e:/360浏览器/360se6/User Data/temp/6941baebgw1eloypmocbsj20u40gttbc.jpg)
![](file:///e:/360浏览器/360se6/User Data/temp/6941baebgw1eloypmocbsj20u40gttbc.jpg)
在Repository name填入testgit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
目前,在GitHub上的这个testgit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。现在,我们根据GitHub的提示,在本地的testgit仓库下运行命令:
git remote add origin https://@xxx/novelWarn.git
把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了
好,到这里终于能提交到github了,吃饭去了!
更加具体的github使用,请戳我
相关文章推荐
- 合并两个排序的链表
- linux笔记 rpm包安装与卸载,chaxun
- 总结 XSS 与 CSRF 两种跨站攻击
- CSS3-给网页添加图片
- 最近涉及reflector中反编代码修改,在此积累经验(三)
- Windows 7 64位下caffe配置cuda7.5 VS2013
- 通讯录索引条的功能实现
- 为Android选择一个合适的架构
- 官方手册集锦
- Android studio导入eclipse项目且不改变目录结构
- Happy New Year 2016
- 6.5 数据库角色
- iOS-私有API与runtime
- Hibernate : Disabling contextual LOB creation as createClob() method threw error 处理
- request.getParameter() 中文乱码解决办法
- 别让扁平化设计平淡无奇
- online_judge_1153
- Unity3D 经常使用库
- C#Hello World
- cento卸载Mysql