git日常(二)----常用git 命令
version 0.2
[TOC]
1. 日志类
显示每次更新的文件修改统计信息
git log --stat
显示最近两次提交
git log -p -2
根据自定义格式过滤日志
git log --pretty=format:"%h - %an, %ar : %s"
使用ASCII表示简单git图
git log --pretty=format:"%h %s" --graph
显示最近一周的提交
git log --since=1.weeks
显示指定作者的提交
git log --author=xuxin
显示指定区间段的提交
git log --author=xuxin --since="2018-04-01" --before="2018-10-01"
显示提交但未合并的信息
git log --pretty="%h - %s" --author=xuxin --since="2018-04-01" \ --before="2018-10-08" --no-merges -- t/
2. 检索类
根据commit信息搜索提交
git log -g --grep="KEYWORD"
git log --all --grep='KEYWORD'
查找有关的关键字
git log --all --pretty=\"format:%Cgreen%H %Cblue%s\n%b%Creset\" --name-status --grep KEYWORD
根据CommitID查看所属分支
git branch -a --contains CommitID
3. 操作类
(未使用add)放弃本地所有更改
git checkout .
撤销特定文件 (注意
--
)
git checkout -- filepathname
(已经使用add)放弃本地所有更改
git reset --hard HEAD^
回退到任意版本
git reset --hard CommitID
修改错误的提交
git commit --amend
查看某人提交的代码
git log --author="xuxin" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
统计每个人提交的代码
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
查看提交者 前五名
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
4. 注:
添加到全局变量中的代码(注意author修改)
git config --global alias.lm "log --no-merges --color --date=format:'%Y-%m-%d %H:%M:%S' --author='xuxin' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit"
git config --global alias.lms "log --no-merges --color --stat --date=format:'%Y-%m-%d %H:%M:%S' --author='xuxin' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit"
git config --global alias.ls "log --no-merges --color --graph --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit"
git config --global alias.lss "log --no-merges --color --stat --graph --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit"
git config --global alias.find "log --all --pretty=\"format:%Cred%cd\n%Cgreen%H %Cblue%s\n%b%Creset\" --name-status --date=format:'%Y-%m-%d %H:%M:%S' --grep"
gitconfig中代码:
[alias] lm = log --no-merges --color --date=format:'%Y-%m-%d %H:%M:%S' --author='xuxin' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit find = log --all --pretty=\"format:%Cred%cd\n%Cgreen%H %Cblue%s\n%b%Creset\" --name-status --date=format:'%Y-%m-%d %H:%M:%S' --grep lss = log --no-merges --color --stat --graph --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit lms = log --no-merges --color --stat --date=format:'%Y-%m-%d %H:%M:%S' --author='xuxin' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit ls = log --no-merges --color --graph --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit
4.2 参考:
4.3 更新说明:
版本 | 时间 | 说明 |
---|---|---|
version 0.1 | 2018年10月09日15:45:06 | 初版 |
version 0.2 | 2018年10月24日15:51:51 | 添加代码统计命令 |