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
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\目录下生成一个子目录greydesigncd 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.name
和git config --global user.email
配置。还有,git pages上的原有文件会被冲掉丢失。
wordpress转换到hexo
npm install hexo-migrator-wordpress –savehexo 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博客(国内的服务,自定义域名收费,还有备案等麻烦,没有尝试就放弃了,放点静态页面,做做测试罢了)
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
以下为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到本地