Git_在Windows 10上配置GitHub个人博客

git与github的区别

git是一个版本控制工具,是Linux的上帝Linus写的:Git教程。其他版本管理工具还有hg

github是基于git的项目托管平台,是世界程序员的圣地,兲朝曾经屏蔽过。

准备工作

1、首先要保证网络畅通,防止GFW捣乱:在路由器中开启ss client,可以解决树莓派以及Windows 10 git bash等网络问题,经测试ok。
当然,在git 中配置代理也是可行的,但没有成功,留待以后补充。

一、GitHub

1、注册github:我的用户名当然是greydesign啦(可以多注册几个吗?)。
2、建立自己的仓库(repositories)。如果想实现静态博客,仓库必须与注册名一致
比如我的博客仓库名就必须是greydesign,而且github pages必须是master目录(gh-pages/docs目录不行吗?)。
3、通过二级域名访问自己的github pages:

仓库:https://github.com/greydesign/greydesign.github.io

个人博客:https://greydesign.github.io#无法访问博客页面,这是因为github pages还没有运行起来(没有主页等文件,是空的)
关于github提供pages功能的知识点:
1、repo下有两种pages:user pages和project pages,一个账号只有一个user pages,但可以有多个project pages。

2、user pages必须在master分支上,其gh-pages分支是空的,可以用来做个人主页,project pages必须在gh-pages分支上,其master分支是空的。

3、个人主页URL必须是https://<username>.github.io #博客用github.io域名,github.com域名

项目URL是https://<username>.github.io/<projectname>
查看自家的仓库settings,看到在GitHub Pages有提示:
GitHub Pages is currently disabled. You must first add content to your repository before you can publish a GitHub Pages site.
解决的办法参考:hexo初探—让写作飞起来,通过设置选择一个theme即可,现在就可以通过访问个人博客了。

二、Windows版本Git

参考:Windows上Git安装(图解教程)

1、安装Windows版本的git

官方下载的是Git-2.15.1.2-64-bit.exe,缺省安装,打开git bash窗口:

git –version #验证安装是否ok

git config –global user.name “xxx” #我的github注册用户名,必须设置,否则hexo d会失败

git config –global user.email “xxx@yyy.com“ #我的github注册信箱,必须设置,否则hexo d会失败

git config –global push.default simple #有啥用?需要研究一下!不清楚就要执行

git config –global –list #验证刚才的三条配置信息,配置文件是c:\msys64\home\.gitconfig
有了git for Windows,试试用git clone下载电子书,比如:怎么样让大明变得透明
git clone https://github.com/fengluo/Transparent-Ming?files=1&from=timeline #在git bash中操作成功,速度很慢,被ss影响了吗?还有,git协议的地址是啥?如何在手机上阅读md电子书?为何目录被git bash自动识别为master?
2、配置密钥登录github(很重要

通过git bash:

ssh-keygen -t rsa -C “xxx@yyy.com“ #生成ssh密钥,所有提问直接回车。问题:邮箱是必须的吗?不一致会出错吗?key fingerprint 以及 key's randomart image是干啥的?
根据提示,打开密钥文件目录,比如我的是/c/Users/qdmca/.ssh/,后来因为安装了msys,目录更改为c/msys64/home/.ssh
id_rsa #私钥

id_rsa.pub #公钥
复制id_rsa.pub所有内容到自己github账户设置中“SSH and GPG keys”的“New SSH key”中,网站提示输入用户密码确认。
在git bash中输入:
ssh -T git@github.com #输入yes,会看到提示授权成功的信息。

git init #在自己的git本地目录中初始化,比如我的是 /d/git 目录,会生成一个.git的隐藏目录
授权信息:
Hi XXX! You’ve successfully authenticated, but GitHub does not provide shell access.

三、Windows版本Hexo

Hexo与Jekyll的区别

1、Hexo用 NodeJS,Jekyll用Ruby,Hexo快一个数量级(高并发场景)

2、Hexo 是本地生成 html 再上傳,Jekyll 是把原文上傳 github,直接生成博客,可在線編輯

3、很多人从Jekyll转向了Hexo
参考官方教程安装Hexo:
安装Windows版本的Node.js,参考Node.js 安装配置,从官方下载的是node-v8.9.4-x64.msi,采用缺省设置安装。打开Git Bash
npm install -g hexo-cli #配置文件在c:/Users/xxx/.npmrc,卸载npm uninstall -g hexo-cli

hexo –v #验证安装
在windows下开启命令行界面,新建d:\Hexo目录,在git bash中:
hexo init greydesign #在c:\Hexo\目录下生成一个子目录greydesign

cd greydesign

npm install
init时hexo奇怪的提示(npm install出现后两行警告):
npm notice created a lockfile as package-lock.json. You should commit this file.

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules\fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {“os”:”darwin”,”arch”:”any”} (current: {“os”:”win32”,”arch”:”x64”})
修改_config.yml文件,填入自己的ssh地址(从github中,找clone and download查找),注意:冒号后面必须有空格,否则hexo d失败,而且没有任何提示,例如

deploy:
type: git
repo: git@github.com:greydesign/greydesign.github.io.git #用https如何?:https://github.com/greydesign/greydesign.github.io.git
branch: master

在git bash中继续运行:

hexo s #hexo server,查看测试网页 http://localhost:4000

四、写博客发布到GitHub上

更换Next主题

git clone https://github.com/iissnan/hexo-theme-next themes/next #官网:hexo-theme-next
修改配置文件_config.yml,将其中的theme landscape更改为theme next

安装 hexo-deployer-git:

npm install hexo-deployer-git –save #提示npm WARN deprecated swig@1.4.2: This package is no longer maintained
发布到github上:
hexo clean #清除缓存

hexo new “新博文” #Create a new post

hexo g #hexo generate,生成本地发布文件

hexo d #hexo deploy,发布到github上,因为根目录配置文件_config.yml忘了在冒号后加空格,执行完后没有任何反应。增加冒号后,又提示不知道用户名与信箱,需要通过命令git config --global user.namegit config --global user.email配置。还有,git pages上的原有文件会被冲掉丢失。
wordpress转换到hexo
npm install hexo-migrator-wordpress –save

hexo migrate wordpress <source> #source是wordpress导出xml文件所在的目录
使用hexo搭建github.io博客(一)
【Hexo搭建独立博客全纪录】(三)使用Hexo搭建博客
hexo new 后同步打开文章编辑器
Hexo 页面自动刷新与移动端调试
手把手教你使用Hexo + Github Pages搭建个人独立博客
使用Hexo搭建个人博客(基于hexo3.0)
史上最详细的Hexo博客搭建图文教程
视频教程:快速使用Hexo 搭建个人博客#001 - Hexo 框架介绍- YouTube
python : send mobi to my email

以下为作废信息,仅供学习git以及github的历史记录:

六、在Coding Pages上托管Hexo博客(国内的服务,自定义域名收费,还有备案等麻烦,没有尝试就放弃了,放点静态页面,做做测试罢了)

参考: 将hexo博客托管于Coding Pages

1、在官网注册greydesign用户;

附:非程序员的Git生活
git用来做版本控制,比svn多了一个缓存区。

我有一个大胆的想法:用来进行结构设计的协同设计与版本控制,当然也可以在工业设计师中推广。

七、Gitlab

公开 repo 放 github,私有 repo 放码云,公司 repo 放公司内网 gitlab
大家除了 Github 还用啥国内的 Git 服务?

绑定顶级域名(因为无法在github上配置自己的https CA证书,最终放弃)

参考:hexo搭建的Github博客绑定域名,我在万网注册了zhangqihui.me,设置CNAME域名解析:

记录类型:CNAME

主机记录:@

解析线路:默认

记录值:greydesign.github.io

TTL:10分钟
zhangqihui.me访问,依然会提示404错误:
There isn’t a GitHub Pages site here.

If you’re trying to publish one, read the full documentation to learn how to set up GitHub Pages for your repository, organization, or user account.
通过ping这两个网址,只想的ip是相同的,为什么还会出错呢?这是因为虽然在域名服务上那里设置了CNAME,但github端还没有设置好。
参考添加 CNAME 文件到你的存储库中,添加CNAME的master目录中,create new file,会开启一个编辑页面,文件名添CNAME,内容添zhangqihui.me,在页面底部提交。刷新zhangqihui.me页面,终于和greydesign.github.io一致了。

实现https访问(不要试图用自己的域名,还是无法配置自定义证书的原因)

github全站缺省支持https访问,但如果设置了CNAME,就不再支持了。
为了安全起见,也为了自己的博客在搜索引擎中排名靠前,还是需要实现https的。但新的问题出现了,提交CNAME前,原来的greydesign.github.io会自动转换为https访问,zhangqihui.me不会转且显示404错误信息。提交CNAME后,greydesign.github.io会转向http://zhangqihui.me访问,而zhangqihui.me会转向不安全的https访问。

github提供二级域名的https访问,但还不支持自定义域名的https配置,放弃自定义域名吧,把github的CNAME文件删除,阿里云的CNAME域名解析也删除掉,老老实实用二级域名也不错。原则:自定义顶级域名实现https访问,只有在VPS上合适,在github或者wordpress上实施并不合适。

需要注意的是,为了实现https,不要用301跳转,因为会被劫持。至于为啥,我不懂!
CloudFlare 的 Flexible SSL
慎用免费HTTPS:看似美好的免费“通用SSL证书”
Let’s Encrypt,免费好用的 HTTPS 证书
Jekyll + Coding Pages 搭建静态博客
教你在 Coding 上搭建 Hexo 个人博客
我的博客是如何搭建的(github pages + HEXO + 域名绑定)
廖雪峰的Git教程
史上最浅显易懂的Git教程
git简明指南
猴子都能懂的git入门
利用GitHub写博客的几种方式#讲述了博客分支的概
如何利用github pages来搭建自己的blog #讲述了博客分支的概念

Android手机Termux安装git

pkg upgrade

pkg install git

git代理设置的方法(避免因为FGW的屏蔽,造成不必要的问题)测试失败,待补充

git有四种代理协议:本地传输,http、git、 ssh。

git config –global -l #提示没有配置文件C:/msys64/home/.gitconfig

git config –global http.proxy ‘socks5://127.0.0.1:1080’ #配置http代理

git config –global https.proxy ‘socks5://127.0.0.1:1080’ #配置https代理

curl www.google.com #验证无效,为什么?

git config –global –unset http.proxy #删除http代理设置

git config –global –unset https.proxy

Windows 命令行提示符或者 Git Bash 怎么使用 PAC 模式?

Windows git 设置和取消代理

Windows下git使用代理服务器的设置方法

Git搭配shadowsocks使用代理访问github

以下为git的一些基本命令练习,与建立博客无关:

登录github,右上角菜单new repository,新建一个asus仓库,在code下的SSH会看到“git@github.com:greydesign/asus.git”

tips: 在仓库右侧的‘clone or downloand’,能查看ssh或者https的仓库地址
在d/git目录新建一个hello.c文件,回到git bash:
git add .

git commit -m ‘第一次提交’ #提示有一个文件changed,应该是新建的hello.c

git remote add origin git@github.com:greydesign/asus.git #greydesign是我的github注册用户名

git push -u origin master #提示成功上传了3个文件
git push origin master #如果github增减了文件,上步命令会提示错误,用本命令可以上传成功?我在本地新建了hello.o,还提示错误!需要补充本地与github同步出现问题如何解决

git clone git@github.com:greydesign/asus.git #如果在github增减了文件,clone到本地