git log 总结

1.git log filename(查看该文件相关的commit记录)
2.git log -p filename(显示该文件每次提交的diff)
3.git show commit-id/branchName/tagName(查看某次提交/分支/tag的详细信息)
4.git show commit-id filename(查看某次提交中的某个文件)

git log 的常用选项
选项 (说明)
--help(显示帮助)
-p(按补丁格式显示每个更新之间的差异。)
--stat(显示每次更新的文件修改统计信息。)
--shortstat(只显示 --stat 中最后的行数修改添加移除统计。)
--name-only(仅在提交信息后显示已修改的文件清单。)
--name-status(显示新增、修改、删除的文件清单。)
--abbrev-commit(仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。)
--relative-date(使用较短的相对时间显示(比如,“2 weeks ago”)。)
--graph(显示 ASCII 图形表示的分支合并历史。)
--pretty(使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。)
-n(仅显示最近的n条提交)
--since, --after(仅显示指定时间之后的提交。)
--until, --before(仅显示指定时间之前的提交。)
--author(仅显示指定作者相关的提交。)
--committer(仅显示指定提交者相关的提交。)
--grep(仅显示含指定关键字的提交)
-S(仅显示添加或移除了某个关键字的提交)

git log --pretty=%b   ##列出所有提交的Change-Id
git log localbrach2..localbrach ##不太靠谱
git blame fileName   ##查看文件详细修改
git log --all   ##查看所有分支的提交记录

例如:
repo forall -p -c "git log branchName --pretty=oneline --since==2019-02-28-08-10 --until=2019-03-16  2>&1 | tee" >> tag.log
(从2019年2月28号早上8点10分到2019年3月16号分支branchName的所有提交,最后的>> tag.log可以让-p参数显示的project名保存到文件中)
个人感悟:每个分支上可以有不同的tag!

git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitId,我们就可以买后悔药,恢复到被删除的那个版本。

 

你可能感兴趣的:(git)