我如何从git中获取最后一次提交的压缩提交

时间:2014-01-17 02:39:03

标签: git version-control

我想要

1. Commit hash
2. commit date
3. commit author
4. commit message from last commit

我的问题是,如果我使用git log -1,那么它会显示所有被压缩的提交,但我只想从那些被压缩的提交中获得最新的提交

1 个答案:

答案 0 :(得分:1)

压缩提交是由其他提交合并而成的新提交。与合并不同,它不保留对其组件提交的任何引用。您无法通过压缩提交返回任何原始提交。如果他们仍然在对象的文件夹中闲逛,你可以在reflog中找到原始提交。

以下是一个包​​含4个提交的示例分支,A是第一个,D是最新的:

A - B - C - D

如果您将C压缩到B,则新提交E由这两个提交组成,其父级为AD被复制到新提交 - - 提交时间不同,父级为B(而不是C):

A - E - D¹

原始BC将存在一段时间,但它们不会被引用(除非提交DAG中的其他内容也引用它们),并最终它们将过期。如果你能看到它们,那就是它们的位置:

A - E - D¹
 \
  \
    B - C - D  (these are no longer visible)