最近一段时间学习Git,并在github上注册了帐号,上传了一些自己写的玩具代码,在github上搭建了自己的blog。发现Git是个挺强大的工具,写点笔记以免遗忘。
Git和github简要介绍
Git 是一款分布式的版本控制系统,由Linux大神 Linus Torvalds为了维护 kernel 开发的。
Git 和以往的版本控制系统最大的不同就体现在它是分布式的,不是集中式的,不必要连接远程版本库,可以在本地进行提交,不依赖网络环境。
Git具有很优秀的分支和合并功能,便于团队协作,加快开发进度。
github 是个代码托管网站,用Git作为其版本控制工具,很好用,很多流行的应用就托管在上面,托管在上面的项目可以方便的 fork, pull request, issuse, 即Social Coding。
Git 基本命令
创建现场版本库,并初始化。
$ git init
添加文件并提交,在修改任何文件的时候,必须先 add,然后 commit,不容许空
commit。$ git add filename $ git commit -m "your commit."
Git checkout 命令,实质上是修改 HEAD 的指向。
$ git checkout *** # 可以处于分离头指针的状态,Git无法跟踪,回到 具体的 branch 要执行 marge 命令。
Git reset 命令,一直在 HEAD 分支中操作,用指定提交状态的文件替换掉暂存区的文件。
$ git reset HEAD <paths> # 取消之前的 git add <paths> 命令, 即用 HEAD 中的上次 commit 的文件替换暂存区的文件。
Git stash 命令。用来保存和恢复进度。
$ git stash # 保存当前工作进度,会对暂存区和工作区的状态进行保存。 $ git stash list # 保存进度列表 $ git stash pop # 恢复最新的工作进度,并从列表中删除 $ git stash apply # 恢复最近的工作进度,但是不从列表中删除
Git 其他基本命令。
$ git rm # 删除命令 $ git add # 添加命令 $ git add -u # 所有改动添加到暂存区 $ git add -i # 选择性添加,交互模式 $ git mv # 改名 $ git cat-file # 和 Linux 中的 cat file 类似 $ git rev-parse # 功能很多暂时没搞明白
Github 相关命令
# 本地建立github.com 项目克隆
$ git clone git@github.com:USERNAME/REPOSITORY.git
# 添加远程版本库
$ git remote add origin git@github.com:USERNAME/REPOSITORY.git
$ git push # 上传
$ git pull # 下载
Github 建立blog
在 github.com 上托管 blog,很酷,免费,而且还可以用 git 进行管理。github.com
上托管的都是静态的网页,一般用 Jekyll 进行维护。项目在GitHub的托管地址:
http://github.com/mojombo/jekyll/ ,专有的URL地址为:http://jekyllrb.com/。
本 blog 用的是 jekyllbootstrap, URL地址为 http://jekyllbootstrap.com/。建立
blog 很简单:
像普通的项目一样在 github.com 上建立如 USERNAME.github.com 的项目。
在本地安装 Jekyll-Bootstrap
$ git clone https://github.com/plusjade/jekyll-bootstrap.git USERNAME.github.com $ cd USERNAME.github.com $ git remote set-url origin git@github.com:USERNAME/USERNAME.github.com.git $ git push origin master
安装 Jekyll, 需要 Ruby 支持
$ gem install jekyll # 如果没有安装 Ruby 和 gem 在 ubuntu 下执行 $ sudo apt-get install ruby gem # jekyll 自带的有服务器,启动后访问 http://localhost:4000/ $ cd USERNAME.github.com $ jekyll --server # remember to change USERNAME to your GitHub username.
生成 post
$ rake post title="your post title" # 生成 time-tittle.md 的文档,在 _posts 目录下,无法生成 # 带中文的目录,如果想用中文的可以手动修改。 # 文档为 *.md 是 Markdown 标记语言解析的,比较简单。
push 到 github.com
$ git push