git reset
重置暂存区中的文件到工作区:
git reset
重置最近一次提交,把HEAD向前移动一步,并把最近一次的commit信息删除,而最近一次的提交修改保存到暂存区中:
git reset HEAD^
重置当前分支到某一个commit:
git reset commit-id
此时会把当前分支HEAD设置为该commit,并且在之后的提交修改全部保存到暂存区中。
完全重置到某一个commit:
git reset commit-id --har
此时会把当前工作区完全恢复到该commit id对应的位置,并且不再暂存之后的修改。
git checkout
检出某个分支的某个文件:
git checkout branch -- filename
创建一个空分支
git checkout --orphan empty_branch
冲突解决时保留本分支的内容:
git checkout --ours
冲突解决时保留其他分支的修改:
git checkout --theirs
git stash
打印git stash使用帮助
git stash help
应用最近stash的修改,并删除最近的最近一次的stash
git stash pop
创建一个stash
git stash
显示已经缓存的stash
git stash list
输出信息如下所示:
stash@{0}: WIP on M2091-QQ_bsp: 096653e [BSP] boot: Update charger mode check interface.
删除某一个stash缓存
git stash drop [stash@{id}]
清除所有stash缓存
git stash clear
- 查看一个stash
git stash show [<stash>]
- 应用一个stash
git stash apply [--index] [<stash>]
git log
按照数量显示
git log -20
按照作者显示
git log --author=myname
显示提交内容
git log --stat
git log -p
单行显示
git log --oneline
显示tag和分支信息
git log --oneline --decorate
自定义显示内容
git log --pretty=format:"%cn committed %h on %cd"
按照commit id范围显示
git log master...3oea685e1
按照时间显示
git log --after="2019-5-1" --before="2019-5-2"
git blame
这个命令可以用来查看某一行或者几行被谁修改过,比如:
查看第1行被谁修改过:
git blame -L 1,1 test.c
查看第5-10行被谁修改过:
git blame -L 5,10 test.c
欢迎扫码关注我的公众号!