如何在windows下安装GIT

Python014

如何在windows下安装GIT,第1张

本文在Windows7下测试成功。

安装和设置Git

下载Git for

Windows,采用默认安装,安装完成后就可以在本地使用Git了。

但要将内容放到Github上,必须先在Github网站上注册个账户,然后在本机使用Git创建SSH Key。操作如下:

在Git Bash上输入命令:

ssh-keygen -C "[email protected]" -t rsa

Note: “[email protected]”需要更换成你在Github上注册的Email地址或者是Username

这样会在用户目录(C:\Users\用户名)下产生一个.ssh文件夹,里面为对应的SSH

Keys,其中id_rsa.pub是Github需要的SSH公钥文件。

到c:\Users\用户名\.ssh\目录找到id_rsa.pub(可能位置不一定对,但是确认是以.pub结尾的文件),并用记事本打开复制全部内容。

Note:建议私钥公钥的名称最好写成"id_rsa",这样连接Github的时候会找这个文件,如果文件名已定,之后改名也行。

在github网站选择“Account Settings”>>“SSH Public Keys”>>“Add another

public key”,将刚才复制的内容粘贴到key文本框内。

这样就可以直接使用Git和GitHub了。

Note:建议在Git Bash中输入“ssh -v [email protected]”测试能够正常连接github

安装Ruby环境

下载RubyInstaller和DevKit。

因为Octopress需要的Ruby版本为1.9.2,所以选rubyinstaller-1.9.2-p290.exe,DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe。

先安装RubyInstaller,然后解压缩DevKit(路径中不能有中文)。

在“Start Command Prompt with Ruby”命令行中进入DevKit解压缩的目录,然后运行以下命令:

ruby dk.rb init

ruby dk.rb install

gem install rdiscount --platform=ruby

如果安装成功,就可以使用一些Ruby的工具了,也为后面搭建博客提供了基础环境。

安装Octopress

先通过Git从Github上克隆一份Octopress(在Git Bash上输入命令)

git clone git://github.com/imathis/octopress.git octopress

然后安装一些依赖的工具(后面都是在Start Command Prompt with Ruby中输入)

cd octopress

ruby --version # Should report Ruby 1.9.2

gem install bundler

bundle install

安装Octopress默认的Theme

rake install

配置Octopress

将octopress的文件夹下的_config.yml的编码改成UTF-8:

保存(或另存为)时选择编码格式为UTF-8

修改_config.yml,批改url、title、subtitle、author等等。

到Ruby的安装目次\lib\ruby\gems\1.9.1\gems\jekyll-0.11.2\lib\jekyll\找到convertible.rb这个文件,批改self.content

= File.read(File.join(base, name))为self.content = File.read(File.join(base,

name), :encoding =>"utf-8")。

写博文

最简单的方式:复制octopress\source\_posts下某个文件,例如2012-07-30-the-first-post.markdown,修改文件名和文件中的内容

或者,命令行中输入rake

new_post["title"],会创建一个新的Post,新文件在source/_post下,文件名如下面的格式:2012-07-31-title.markdown。该文件可以直接打开修改。

写文章时,可以使用Markdown和Octopress

Plugins等工具对内容进行格式排版。

预览效果

在修改设置或者写完文章后,想看看具体效果,可以通过如下命令来完成:

rake generate

rake preview

将博客部署到Github上

在预览的效果符合自己的预期后,就可以通过如下命令将内容部署到Github上了。

如果是第一次部署,需要在Github上创建一个username.github.com的repository

在github网站选择“Create a New Repo”,如图

填写对应的内容即可

note:Repository

name填写username.github.com,username一定要和github的username一致,建好的博客代表的是你这个github账户的主页即page

配置octopress与github的连接:

进入Octopress目录:

rake setup_github_pages

按照提示填入你的github项目网址,比如:

[email protected]:Username/yourname.github.com.git

note:可以按照上面的修改,也可以在github的项目页中找地址

分发到github上:

rake deploy

第一次运行时,会询问是否建立对github的授权,输入:yes。然后将站点更新的内容推送到github上。

补充一点:

最后的但并不是最重要的,我们需要将修改的日志同步到github上,因此下面的3个命令也是必须的。

git status

git add .

git commit -m 'your message'

git push origin source

大功告成!

读取csv

文件中读取:一次读入全部(设置headers使 CSV#shift() 以CSV::Row对象返回而不是数组;使

require'csv'CSV#read() 返回 CSV::Table 对象而不是数组)CSV.read('test.csv')#=>Array#headers默认为false,如果设置为true,csv的第一行将被视为标题CSV.read('test.csv',headers:true)#=>CSV::Table#headers设置为数组,这个数组将被作为标题CSV.read('test.csv',headers:[1,2,3,4,5])#headers设置为字符,这个字符串内容将被作为标题CSV.read('test.csv',headers:"1,2,3,4,5")

​ 文件中读取:一次读入一行

#由于headers配置,返回类型发生变化(这个方法默认为第一行是标题,不会进行返回)CSV.foreach'test.csv'do|row|puts row.class#=>ArrayendCSV.foreach('test.csv',headers:true)do|row|puts row.class#=>CSV::Rowend#return_headers:true 返回标题CSV.foreach('test.csv',return_headers:true)do|row|p row#=>返回Arrayend

​ 字符串中读取:一次读取一行

CSV.parse("CSV,data,String")do|row|# use row here...end

​ 字符串中读取:全部读取

CSV.parse("CSV,data,String")#[]方法需要返回的类型为CSV::ROW所以设置参数headers:truecontent = File.read('data.csv') csv = CSV.parse(content,headers:true) sum =0csv.eachdo|row|sum += row['id'].to_iendputs sum

正如你所知道的,ruby字符串被称为一流的对象,它使用了大量的查询和操作方法。一个最基本的字符串操作是把一个字符串分割成多个子字符串。如果你有一个字符串,如“foo, bar, baz”而你希望的是这样三个字符串“foo”,“bar”,“baz”。那么字符串类的split方法就可以帮助你。 “split”的基本用法 split方法的最基本用法分裂一个由单独字符或字符的静态序列组成的字符串。如果split的第一个变量是一个字符串,那么这个字符串中字符就会被当作一个字符串分隔符使用。但是在逗号分隔的数据中,逗号用来分隔数据,这里的每个字符串成分都被用来分隔数据。 #!/usr/bin/env rubystr =foo,bar,bazputsstr. split(,)$ ./1.rbfoobarbaz通过正则表达式来增加灵活性 当然,还有一些更容易的方法可以分隔字符串。正则表达式可以为split方法增加灵活性。这里再次拿“foo, bar, baz”。间隔在第一个逗号之后而不是第二个逗号。如果该字符串“,”被当成是分隔符,那么在“baz”字符串的开始处仍然会存在间隔。如果使用“,”字符串,它只与第一个逗号匹配,因为第二个逗号后面没有间隔。其作用还是有限的。 解决这个问题的办法是把正则表达式作为定界符的自变量,而不是使用字符串。正则表达式不仅可以匹配静态序列的字符,对字符的不定量和可选字符都同样起作用。 编写正则表达式 为你的分隔符编写一个正则表达式,第一步就是描述清楚什么是分隔符。在这种情况下,一个逗号后面可能存在一个或多个空格是合理的。这一正则表达式库中存在两个要素:逗号和可选的间隔。间隔会使用* (星号)量词,它表示的意思是“零或更多”。任何在它之前的要素都会匹配零次或若干次。例如,正则表达式/ a * /将匹配序列零或更多“a”字符。 #!/usr/bin/env rubystr =foo, bar,bazputsstr. split( /, */ )$ ./2.rbfoobarbaz限制splits的数量 想象一个逗号分隔了这样的字符串:“10,20,30,this is an arbitary string”。其格式是三个数字后面跟了一句评论。此评论可以包含任意的文本,包括带有逗号的文本。要防止split分离文本这个文本,我们可以设置一个最大分裂列数。请注意,只有在任意文本的评论字符串处在表格最后一列时才管用。 为了限制splits的数量,字符串中数域的数量要作为split方法的第二个变量来发送。 #!/usr/bin/env rubystr =10,20,30,ten, twenty and thirtyputsstr. split( /, */, 4 )$ ./3.rb102030en, twentyandthirty了解其局限性 分裂法有一些局限性。以字符串“10,20, ‘bob, eve and mallory’,30”为例。预期字符是两个数字,后跟一个引证串(可能包含逗号),然后是另一个数字。split不能正确分隔这个字符串的域。为了做到正确分隔,需要保持字符串扫描器处于开启状态,这样一来它就会记得它有没有在引证串内部。反之,如果扫描仪不在启动状态,就不能解决这样的问题。