github基础操作的备忘录。
Table of Contents
Git使用指南
创建用户
git config --global user.email flameyeelf@gmail.com
git config --global user.name LunaElfGaming
在单独的repository目录下去掉–global,就是局部设定
创建repository
先来到想要创建repository的根目录,执行创建和新建文件
mkdir test
cd test
touch a.md
然后初始化,查看目录
git init
git status
#On branch master
#nothing to commit, working directory clean
git status是快速查看repository状态的命令,频繁使用. touch,mkdir分别创建目录和文件,而文件的复制,移动和删除分别为cp,mv,rm
在创建文件之后,我们需要把文件加入repository中来
git add a.md
#git rm --cached
git commit -m 'first commit'
git log
add可以将文件加入repository中,但命令会暂存在”Changes to be committe d”列表中,通过commit -m来提交,-m表示提交信息 此时输入git log,可以看到commit历史
git tag alpha0.1
git tag
#-> alpha0.1
git chackout alpha0.1
通过git tag来为当前版本添加标签,并且可以在不同版本之间跳跃.
Github上传
SSH key
SSH是计算机之间加密登录的网络协议,向Github提交首先需要SSH key获得授权.
ssh-keygen -t rsa
# RET three times
cd ~/.ssh
cat id_rsa.pub
指定rsa算法来生成密钥,在~/.ssh目录下分别生成密钥idrsa和公钥idrsa.pub
在Github的个人Settings页面,选择SSH and GPG keys,New SSH key,将idrsa.pub中的内容复制,即添加了新的公钥. 测试:
ssh -T git@github.com
简写设置alias
简写设置能够自定义快捷输入,类似emacs的company mode. 简写不仅能设置快捷补全单词,还能快捷补全命令组合
git config --global alias.psom "push origin master"
git config --global alias.plom "pull origin master"
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
注意,在命令输入是不需要TAB补全的,比如查看日志,直接git lg RET就好了.
default config
一些杂七杂八的配置
git config --global core.editor "emacs"
git config --global color.ui true
git config --global core.quotepath false
git config -l
将默认的模拟器配置为emacs,将git命令加入颜色ui,显示中文名称文件.
diff
diff可以用来查看具体做了哪些改动
git diff
diff还可以指定查看不同版本之间的差异,暂时不详细了解.
提交repository
先在github创建好repository,然后就可以进行克隆,将repository克隆到自己的本地
git clone git@github.com:address
克隆的源地址可以在网页repository栏clone选项中找到,而本地的相关操作参见git的部分. 完成本地的修改和commit后,就可以进行push
git push origin master
#git pull origin master
push将代码推到远程master分支,pull则是将远程最近更新的代码同步到本地.先pull再push可以防止冲突.
而直接上传本地的repository,可以进行如下的操作:
git remote add origin git@github.com:LunaElfGaming/NewRep.git
git remote -v
git push origin master
origin是github默认的远程仓库名称,通过remote可以查看当前有哪些远程仓库
Blog创建
初步设置 Hello world!
新建repository,命名为LunaElfGaming.github.io,此后这一名称将做为个人blog的域名 接下来通过git对这个项目进行编辑:
git clone https://github.com/LunaElfGaming/LunaElfGaming.github.io
cd LunaElfGaming.github.io
echo "Hello World!" > index.html
#clone项目后,在个人主页index.html加入的文本hello world
git add --all
git commit -m "Initial Commit"
git push -u origin master
完成以上操作,可以在个人主页看到Hello World的字样,尽管网页依然一篇空白.
接下来对仓库内容进行初始化,使用Jekyll做为博客的技术载体,初始化如下内容:
mkdir _includes
mkdir _layouts
mkdir _posts
touch .gitignore
touch _config.yml
git add --all
将如下改动push,在网页验收.注意,空文件夹是不会被上传的
_layout文件夹下创建格式文件,index.html修改主页,在folk现成的theme后,针对对应文件进行修改.
jekyll安装
jekyll是基于ruby的开发,先在系统中安装ruby
sudo apt-get install ruby
ruby -v
以后可以在shell中直接通过ruby命令来晚R语言,输入quit退出.非常好玩的语言,目前也排在编程语言学习日程中. 在系统中安装了gem的情况下,可以直接安装jekyll了:
gem install jekyll
jekyll的模板文件保存在layout文件夹中,使用html语言和Liquid语言编写.
Transform your plain text into static websites and blogs.
主题下载
jekyll可以直接在网站上下载到相应的主题,folk或直接替换自己的本地文件后执行 git add . 等操作即可. 相应的模板修改见于主题自带的修改教程,一般在config.yml中修改参数.
本地调试
由于github每一次上传都相当于版本改动,步骤比较繁琐,而博客出现bug时需要反复调试,此时选择本地调试可以减少不少麻烦. 运行如下shell命令,安装本地调试环境:
bundle install
bundle update
在安装完成后,依然可以执行update进行更新. 如果有未安装的安装包,终端会自动提示.
接下来,cd到对应jekyll网页的根目录下,开启本地服务:
bundle exec jekyll serve
终端会自动给出本地服务器的地址,默认为http://localhost:4000. 注意不要再emacs内部shell终端开启服务器,因为服务器需要快捷键 C-c 来停止,这和emacs本身的快捷键是冲突的.