GIT记录操作
- 历史记录
git log
与git show的不同之处在于,log
git log 会按提交时间列出所有的更新,最近的更新排在最上面
-p 用来显示历史提交的内容差异.可以指定显示条数
--author 指定作者
--stat 在每次提交的下面列出所有被修改过的文件,会显示+-号
--pretty 使用其他格式显示历史提交信息。
--name-status 显示新增、修改、删除的文件清单。
-(n) 仅显示最近的 n 条提交
--since,--after 仅显示指定时间之后的提交。
--until,--before 仅显示指定时间之前的提交。
--author 仅显示指定作者相关的提交。
--committer 仅显示指定提交者相关的提交。
--grep 仅显示含指定关键字的提交
-S 仅显示添加或移除了某个关键字的提交
--graph 查看分支合并图。
--oneline 一行显示日志;--graph 也可以用这个.
--all 所有分支的日志
--decorate 标记会让git log显示每个commit的引用
--simplify-by-decoration 只显示被branch或tag引用的commit
实例:
# 思否的RobinLi用户, 提供的格式化后的日志树
git log --graph --pretty=format:'%C(bold red)%h %Creset- %C(bold yellow)%d %C(bold cyan)%s %C(bold green)[%cr] %C(bold magenta)[%cn] %C(bold green)[%ci]'
# 查当前分支 提交记录{日志文件}默认所有
git log
# 比较本地的master分支和origin/master分支的差别
git log -p master..origin/master
# 查看指定条数的修改日志
git log -n *
# 查看指定文件的所有修改历史
git log -p 文件/目录
# 单行显示记录,不显示详细内容
# 其实--pretty=* 但凡记录输出都有该命令,用于美化输出
git log --pretty=oneline 文件名
# 查看指定分支的提交日志
git log 分知名
# 查远程的BanchName分支
git log origin/分知名
# 查询全部的分支
git log --all
- 也可以使用gitk插件查看记录树,树也更好看一些
gitk是git的一个bin工具,如果git不包含gitk只能说明当前使用的git版本过老。
Mac下直接使用gitk命令 会弹出一个应用来查看
gitk XXX可以使用所有的git log 命令
- 点线图git log --graph的点线图
*表示一个commit, 注意不要管*在哪一条主线上
|表示分支前进
/表示分叉
\表示合入
|/这个符号表示新分支
不一样的颜色代表不一样的分支,分支名不显示
- 查看所有操作日志的(可以用以,反版本回退实际上可以恢复任何操作)
git reflog
git reflog --hard Head
- 对比差异
git diff
对比两个文件,分支,库,commit的差异性
HEAD 意为当前commit版本
HEAD^ 上一个版本
HEAD^^ 上上个版本
HEAD~100 向前100个版本
# git diff提示fatal: ambiguous argument 'origin/lm_index_ad': unknown revision or path not in the working tree.
说明要对比的分支中,有一个是本地不知道的分支.所以要git fetch一下.同步一下分支的情况
# 查看文件具体修改(详细操作,见GIT常用分支相关命令)
git diff FileName
# 将新建文件添加至版本库
git add FileName
# 对比当前版本和远程分支的差异
git diff HEAD FETCH_HEAD
# 对比当前和该远程库中的master分支中,该文件的改动
git diff HEAD origin/master application/views/tpl.header.phtml #
# 查看两个分支的代码差异/不仅分支,HEAD也可以/commit值也可以
git diff 分支名1 分支名2
# 查看尚未暂存的文件更新了哪些部分
git diff
# 查看当前分支和指定分支的差异
git diff branchName
# 查看两个分支的差异
git diff branch1 branch2
# 查看两个分支中的某个文件的差异
git diff branch1 branch2 FileName
# 查看尚未暂存的某个文件更新了哪些
git diff filename
# 查看已经暂存起来的文件和上次提交的版本之间的差异
git diff --cached
# 查看已经暂存起来的文件和上次提交的版本之间的差异
git diff --staged
# 查看已经暂存起来的某个文件和上次提交的版本之间的差异
git diff –cached filename
# 查看某两个版本之间的差异
git diff CommitHead1 CommitHead2
# 查看某两个版本的某个文件之间的差异
git diff CommitHead1:filename CommitHead2:filename
# 查看工作区区和版本库中的差异
git diff HEAD
# 查看该文件在工作区中和版本库中的文件的差异
git diff HEAD fileName
## 查看上次修改的内容和当前文件的差异
git diff HEAD 显示工作目录与git仓库之间的差异,
而git diff HEAD^ 则显示上一次提交之前工作目录与git仓库之间的差异。
所以我们在git pull后,可以通过git diff HEAD^ 来查看拉下来的文件有那些具体的修改。
git diff HEAD^^为上上次的修改
这里用git show HEAD 和git show HEAD^也可以
- 查看指定CommitID提交的内容
git show
与log的不同之处在于仅仅用于查看当次的修改内容
# 查看本次修改的内容
git show
# 仅仅查看某次提交的内容
git show commitID 文件/目录