0

我有一个使用 Windows git 克隆的存储库,当我尝试使用WSL git重新设置存储库时,发生了一些奇怪的事情。

这是我的输入

pick 9f37600 Initial commit
pick 1942413 refactor: remove useless pages
pick ded8102 WIP 1
pick dde7c08 WIP 2
pick cc2334e WIP 3
pick 6567c27 WIP 4
pick 918a347 WIP 5
pick 0f4e802 WIP 6
pick ebacf31 WIP 7
pick 50d48e4 WIP 8
pick d36f95c WIP 9
pick b7e7065 WIP 10
pick a6bc8a6 WIP 11
fixup 7607be9 WIP 12

当我使用 Windows git 变基时,从“初始提交”到“WIP 10”的提交保持不变,只有“WIP 11”的提交哈希发生了变化。但是,WSL git 更改了所有提交的哈希值。

如何避免 WSL git 更改其他提交的哈希?

4

1 回答 1

0

这个问题可能没有解决办法。

git cat-file commit <SHA>在变基之前和之后运行了“相同”的提交。我发现 WSL git 更改了 rebase 上的提交者时间戳,因此哈希也发生了更改。相比之下,Windows git 使用旧的提交者时间戳,因此哈希在 rebase 操作后保持更改。

这是 rebase 之前提交的 cat 文件。

tree 7d804c5a84c61fbdc26ed443a7b9900fcf536d0f
author my-name <my-name@example.com> 1578669828 +0800
committer my-name <my-name@example.com> 1582870913 +0800

Initial commit

这是由 WSL git 重新定位后的 cat 文件。

tree 7d804c5a84c61fbdc26ed443a7b9900fcf536d0f
author my-name <my-name@example.com> 1578669828 +0800
committer my-name <my-name@example.com> 1589713427 +0800

Initial commit
于 2020-05-17T11:00:04.697 回答