如何确定哪些提交被git压缩?

时间:2013-01-25 07:25:59

标签: git git-rebase githooks

我正在编写一个脚本来保存存储库中某些提交的引用,但是如果某些提交被压缩,则引用将变为无效。我知道有pre-rebase钩子,但没有post-rebase钩子,所以有没有办法确定哪些提交被压扁在一起?

例如,在rebase之前我有这段历史:

cf79121 Refactor the trim_file_name method. Closes #1965.
82ed26a Updated dependencies and project versions.
8047297 Updated Node.js implementation package information.
b2b727c Added "finished" callback, which is called for each "completed" or "failed" event.

在变装后我得到了:

cf79121 Refactor the trim_file_name method. Closes #1965.
9b7ac26 Updated dependencies, project versions, and node.js package information.
b2b727c Added "finished" callback, which is called for each "completed" or "failed" event.

如何找出82ed26a + 8047297 = 9b7ac26

1 个答案:

答案 0 :(得分:3)

除非该信息仍在您 git squash提交的repo的reflog中,否则我认为您无法获得该信息。
请参阅“How to undo a git merge squash?”。

所以你的脚本可以在发生壁球的本地git仓库中工作,但它不会在同一个仓库的克隆中起作用。

除非用户在评论中系统地记录了壁球,否则该信息(提交已被压扁)将无法使用。