首页 > 代码库 > Git权威指南 读笔(1)

Git权威指南 读笔(1)

第四章 Git初始化:

  设置Git当前用户和邮件地址:

    $ git config --global user.name

    $ git config --global user.email

  设置Git命令别名:

    $ git config --global alias.ci commit 

  在windows系统中进入J:\gits\目录,可以先输入mount命令,查看各盘符在Cygwin下的驱动映射地址

    $ cd /cygdrive/j/gits/

  创建文件夹:$ mkdir demo  创建文件: $ touch hello.txt  向文件中写入内容: $ echo "hello world." > hello.txt (如果是尾部追加内容用 >>)

  Git初始化,添加新文件,提交命令:

    $ git init

    $ git add hello.txt

    $ git commit -m "first commit."

  三条命令,分别打开版本库级别的配置文件、全局配置文件(用户主目录下)和系统级配置文件:

    $ git config -e  (git config 命令可以用来读取和更改INI配置文件的内容,但是打开以后怎么操作的?)

    $ git config -e --global

    $ git config -e --system

  备份工作:

    $ cd /cygdrive/j/gits

    $ git clone demo demo-step-1

 

第五章 Git暂存区:

  查看提交日志:

    $ git log (后面添加各类参数,

      如 --stat 表示看到每次提交的文件变更统计,

      --oneline[--pretty=oneline] 表示每次提交只显示一行,

      --graph 表示左侧显示图结构[针对分支合并])

  查看修改后的文件与版本库中的文件差异:

    $ git diff (比较文件区和暂存区)

    $ git diff head (比较文件区和版本库)

    $ git diff --cached[--staged] (比较暂存区和版本库)

  查看当前工作区,暂存区和版本库的差异:  

    $ git status (参数 -s 表示精简显示)

  .git/index文件中记录的(用于跟踪工作区文件的)时间戳、长度。

  工作区、暂存区和版本库的目录树浏览:

    $ git ls-tree -l[-long] head (版本库)

    $ git ls-files -s (暂存区)

      (或者 $ git write-tree : 暂存区的目录树写入Git对象库, 再 $ git ls-tree -l <SHA1>;

      再或者$ git write-tree | xargs git ls-tree -l -r -t)

    $ find . -path ./.git -prune -o -type f -printf "%-20p\t%s\n" (工作区)

  保存当前工作进度:

    $ git stash

 

第六章 Git对象:

  查看日志的详尽输出:

    $ git log -1[数字] --pretty=raw (会显示本次提交的唯一标识,对应的目录树,父提交)

  研究Git对象ID的类型(共四种类型:blob, commit, tree, tag):

    $ git cat-file -t [SHA1]

  ID的前两位作为目录名,后38位作为文件名,查看某些对象在对象库中的实际位置:

    $ for id in [若干SHA1] ; do ls .git/objects/${id:0:2}/${id:2}*; done

  显示当前的工作分支:

    $ git branch (一般显示: * master)

  在.git目录中搜索head和master文件位置:

    $ find .git -name head -o -name master

  一般情况下,head , master 和 refs/heads/master 具有相同的指向。

  显示引用对应的提交ID:

    $ git rev-prase master

Git权威指南 读笔(1)