第九章 恢复进度:
$ git stash list
显示存储的工作进度列表。
$ git stash
保存当前的工作进度,分别对暂存区和工作区的状态进行保存。
$ git stash pop [--index] [<stash>]
恢复保存的工作进度,并将恢复的工作进度从存储的工作进度列表中删除。
$ git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [<message>]]
第一条git stash的完整版。
$ git stash apply [--index] [<stash>]
不删除恢复的进度,其余和git stash pop一样。
$ git stash drop [<stash>]
删除一个存储的进度。
$ git stash clear
删除所有存储的进度。
$ git stash branch <branchname> <stash>
基于进度创建分支。
实现方法:
用git stash保存进度,实际上会将进度保存在引用refs/stash所指向的提交中;而refs/stash引用的变化又reflog(即.git/logs/refs/stash)所记录下来。
第十章 Git基本操作:
$ git ls-files [--with-tree=<commit>]:默认查看暂存区中的文件
$ git rm [filename] :删除暂存区中的文件
$ git cat-file [-p] [<commit>:filename]: 查看文件内容
$ git add -u:将被版本库追踪的本地文件的变更全部记录到暂存区
$ git checkout <commit> -- filename : 从历史提交中提取文件
$ git mv filename filename : 改名操作
$ git add -i : 进入交互界面,选择性添加
$ cat > .gitignore << EOF
> hello
> *.o
> *.h
> EOF
:实现文件忽略
$ git add -f hello.h : 添加已经被忽略的文件,添加后保持跟踪
$ git archive -o latest.zip head : 基于最新提交建立归档文件
$ git archive -o partial.tar head src doc
$ git archive --format=tar --prefix=1.0/ v1.0 | grip > foo-1.0.tar.gz
第11章 历史穿梭:
图形工具gitk、gitg、qgit,由于cygwin命令安装不完整,尚未实践。
版本表示法:git rev-parse , 加不同参数可以显示当前版本库的引用;讲一个Git对象表达式表示为对应的SHA1哈希值。
版本范围表示法: git rev-list , 一个提交ID就可以代表一个版本列表,含义是该版本开始的所有历史提交,取反^ , 加点..
浏览日志: git log , 参数-<n>显示最近的<n>条日志;参数-p显示日志的时候显示改动;参数--stat只显示改动在哪些文件上;参数--pretty=raw显示commit的原始提交;
$ git show D --stat : 只显示某一个提交;
$ git cat-file -p D^0 : 显示里程碑D及其提交,参数-p的含义是美观的输出pretty。
$ git blame [filename] : 文件追溯
$ git blame -L 6,+5 [filename] : 显示第6行开始往后的5行
$ git disect : 二分查找 (详见书籍152页)