4

我正在编写一个脚本,它保留对存储库中某些提交的引用,但是如果某些提交被压缩,那么引用将变得无效。我知道有pre-rebase钩子,但没有post-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

4

1 回答 1

3

除非该信息仍在您只需git squash 提交的 repo 的 reflog 中,否则...我认为您无法取回该信息。
请参阅“如何撤消 git merge squash? ”。

因此,您的脚本可以在发生壁球的本地 git 存储库中运行,但它不能在同一个存储库的克隆中运行。

除非用户在评论中系统地记录了一个 squash,否则该信息(提交已被压缩)将不可用。

于 2013-01-25T07:43:17.347 回答