git note

2012/8/5 06:03:00

最近一段时间学习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
    

参考资料

  1. Git 权威指南
  2. GotGitHub
  3. jekyllbootstrap
  4. sixpoint’s blog