大家好,我是白鱼。一直对 git author 和 committer 不太了解, 今天通过 cherry-pick 的例子搞清楚了区别。
原理
例如我克隆了著名开源项目 spdlog 的源码, 根据某个历史 commit A 创建了分支, 然后 cherry-pick 了这个 commit 之后的commit B。 那么对于 B 这次 commit, 我是 commiter, 之前commit B的人,现在成为了author。
复现
首先在 v1.x 分支,查询历史 commit 信息。 挑选出 commit A(红色),并记录它后面一个 commit B(绿色)。
接着,从 commit A 创建分支 temp, 并 cherry-pick B :
git checkout -b temp a2b426204
git cherry-pick 1e7d7207
我们从 git 自带的图形界面工具 gitk 查看最新一次 commit 的信息:
可以看到, Author 保持了原本作者, Committer 则变成了白鱼本人。