git log、reflog、cherry-pick

950 阅读1分钟

1、git log

git log 命令可以显示所有提交过的版本信息

$ git log

commit 8c5356b3660d8fe87f9d19839c9a4caff5bb42b6 (HEAD -> lyf)
Author: xxx <xxx@qq.com>
Date:   Sun Jul 12 13:30:45 2020 +0800

    222

commit 8d0669fc9c107752397b3f047b7de53bd1a85530
Author: xxx <xxx@qq.com>
Date:   Sun Jul 12 13:30:26 2020 +0800

    111

如果不想显示那么多信息,可以加上参数 --pretty=oneline,只会显示版本号和提交时的备注信息

$ git log --pretty=oneline

8c5356b3660d8fe87f9d19839c9a4caff5bb42b6 (HEAD -> lyf) 222
8d0669fc9c107752397b3f047b7de53bd1a85530 111

如果显示前几条,可以加上参数-[n],如下只显示前三条

$ git log -3

2、git reflog

可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本

$ git reflog

8c5356b (HEAD -> lyf) HEAD@{0}: reset: moving to 8c5356b
1bc7bfe HEAD@{1}: commit: 7777
62fd481 HEAD@{2}: reset: moving to 62fd481db485264c8d94656abe2897a194ce1237
8c5356b (HEAD -> lyf) HEAD@{3}: commit: 6666
8d0669f HEAD@{4}: commit: 5555

3、git cherry-pick

git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支

$ git cherry-pick [commitHash]

参考

git 相关介绍

git cherry-pick 教程