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