为什么这个旧的git提交出现在顶部?

时间:2016-06-10 13:14:26

标签: git git-svn

考虑以下git日志。提交按日期排序。然而,有一个提交明显比其他提交更早但仍然出现在顶部。

table.requestLayout();

为什么会这样?

2 个答案:

答案 0 :(得分:2)

提交日期并不决定它们的顺序。有三种情况可以创建过时的提交:

  1. 提交可能有假日期
  2. 提交可能源自不同的分支,可能是使用merge引入的(通常git log不显示合并)。
  3. 提交可能已被rebase移动(它会在提交图中移动提交但保留原始日期)
  4. 根据您使用git-svn的事实判断,这会产生很多变化,我猜它会是3号的情况。

答案 1 :(得分:2)

顶部的提交未转发到SVN存储库。它只存在于git中。其他提交已发送到SVN(使用git svn dcommit,由git-svn-id s证明。

当您使用git svn rebase从SVN提取最新更改时,git-svn会重新排列您的提交并将您的本地内容放在(线性)SVN历史记录之上。 (也就是说,它确实是rebases SVN无法提及的任何提交。)

重新定位只会重新排列历史记录。它不会改变提交日期。