查看版本: $git --version
颜色 $git config --global color.ui true
创建目录:
$cd /path/to/my/workspace
$mkdir demo
$cd demo
$git mit
或:
$cd /path/to/my/workspace
$git init demo
$cd demo
git目录即Git版本库,又叫仓库 respsitory
版本库所在的目录称为工作区
创建文档:$echo "Hello" > welcome.txt
添加到版本库:$git add welcome.txt
提交:$git commit -m "initalized
通过"-m" 参数设置提交说明 initiallized
搜索工作区的文件内容:
$git grep "……"
$git status
$strace -c 'trace=file' git status
追踪执行status命令时的磁盘访问
清除工作区当前的改动:$git dean -fd
用缓存区内容刷新工作区:$git check out
git write-tree 的输出就是写入Git对象库中的Tree ID
git ls -tree -l ID 随便写
git diff:工作区与index(暂存区)
git diff HEAD/master 工作区与master
git diff --cached /---cached HEAD 暂存区与HEAD
不可使用 git commit -a
git status 查看当前状态
git stash 保存当前的工作进度
git log -l --pretty=raw
commit HASHID 本次提交的唯一标识
tree SHAI ID 本次提交所对应的目录树
parent SHA ID 本次提交的上一次提交(父提交)
$git cat-file -t ID 可查看的ID类型
$git cat-file -p ID 查看文件信息
$继续可得到文件类型和内容
查看对象在对象库中的实际位置
$for id in commit ID tree ID parent ID blop ID;do\
ls .git/objects/${id:0:2}/$(id:2)*;done
$git status -s -b
$git branch 显示当前的工作分支
$git log -l HEAD
$git log -l master
$git log -l refs/heads/master
$find .git -name HEAD -o -name master
目录:.git/refs 是保存引用的命名空间
其中:.git/refs/heads 目录下的引用又称为分支
git rev-parse 可以用于显示引用对应的提交ID
Linux下使用$printf Git|sha|sum 生成摘要
使用$git cat-file commit HEAD 查看HEAD对应提交的内容
$git rev-parse HEAD 查看哈希值
查看版本库中文件内容:$git cat-file blob HEAD :文件全名
查看文件内容的字节数:$git cat-file blob HAED : 文件名.|wc -c
HEAD 对应的树的内容字节数:HEAD^(tree)
$git reset ---hard HEAD^(HASH ID) 将master重置到一个老提交上
$cat "文件名" 查看文件
$git config core .logallrefupdates
$tail -s .git/logs/refs/heads/master
$git reflog show master|head -s
git reset
用法一: git reset [-q] [<commit>][--] <path> ……
用法二:git reset [--soft|--mixed|--hard|--merge|keep] [-q] [<commit>]
用法一不会重置引用,更不会改变工作区,而是用指定提交状态<commit> 下的文件<paths> 替换掉暂存区的文件
用法二会重置引用
使用参数hard 会替换引用指向,暂存区,工作区
使用参数soft仅改变引用指向
使用mixed或不使用参数不改变工作区
git checkout 检出命令
修改HEAD 本身的指向,该命令不会影响分支游标
用法一:git checkout [-q] [<commit>] [--] <paths> -....
用法二:git checkout [<branch>]
用法三:git checkout [-m] [[-b] --orphan] <new_branch>] [<start point>]
git stash 命令
$git stash list 查看保存的进度
$git stash pop 从最近保存的进度进行恢复
$git commit -m " " 从当前暂存区状态进行提交
$git reset -soft HEAD^ 放弃最新的提交
$git clean -nd -fd 删除本地多余的目录与文件,fd是强制删除
$git stash 保存当前的工作进度
$git stash list 显示进度列表
$git stash pop [--index] [<stash>]无参数则会恢复最新的工作进度,并将恢复的工作进度从存储的工作进度列表中清除
使用<stash> 则从该stash中恢复,恢复完毕后从列表删除
--index 除恢复工作区文件外,亦恢复暂存区
$git stash [save [--patch] [-k] --[no - ] keep -index] [-q|--quiet] [<message>]
--patch 显示工作区和HEAD的差异
使用--keep -index 或-k参数,在保存进度后不会将暂存区重置,默认会强制重置暂存区与工作区
$git stash apply [--index] [<status>] 不删除恢复的进度,同pop
$git stash drop [<stash>] 删除一个存储的进度,默认删除最新的
$git stash clear 删除所有的存储进度
$git stash branch <name> <stash> 基于进度创建分支