Git for Windows 是否正在创建与之前的日期重复的提交?

Git for Windows is creating commits with duplicate dates to the one before it?

我将 Git 用于 Windows 及其附带的 GUI,当我在 Git Bash 或 [=24] 中创建新提交时=] GUI,它正在创建与之前的日期相同的新提交。

我不知道为什么要这样做。我已经完成了今晚需要完成的大部分提交,但我不希望我的所有提交都停留在 11 月 13 日!

一周后 (11/20),我仍然能够重现此问题。这些是我的全局 Git 变量:

MINGW64 /d/Users/Public/Music/Playlists (master)
$ echo ${!GIT_*}
GIT_EXEC_PATH

MINGW64 /d/Users/Public/Music/Playlists (master)
$ echo $GIT_EXEC_PATH
C:\Program Files\Git\mingw64/libexec/git-core

Git takes rarely-used overrides from the environment,我能想到的唯一会产生您在此处描述的行为的是,如果您以某种方式离开 GIT_COMMITTER_DATE 设置并导出。也许您在 运行 shell?

中添加了脚本

无论如何,您可以看到任何当前 git 覆盖的名称 echo ${!GIT_*}.unset` 如果您找到的话,应该这样做。

简短回答:我猜不要修改提交。

我知道我已经修改了提交,但它不会影响其他系统上的下一次提交,即 Linux 和 OS X,但只是为了修复我当前的存储库以便我可以继续使用它,这就是我所做的:

Playlists2$ git checkout e71521b3b26c5e053fa7ce2f4e2ca602de9b734f
C:\WINDOWS\system32>ROBOCOPY Playlists2 Playlists1 /MIR /COPY:D /XD .git
Playlists1$ GIT_AUTHOR_DATE="2016-11-13 19:47:27" GIT_COMMITTER_DATE="2016-11-13 19:47:27" git commit -m "Massive UUID updates for entire directory, but restore last modified date\n\nROBOCOPY <backup> <cwd> /COPY:T /XD .git"

Playlists2$ git checkout 9ec2d7abfac0c1a1c5eaeb58abedcb65bbab29e5
C:\WINDOWS\system32>ROBOCOPY Playlists2 Playlists1 /MIR /COPY:D /XD .git
Playlists1$ GIT_AUTHOR_DATE="2016-11-13 21:26:46" GIT_COMMITTER_DATE="2016-11-13 21:26:46" git commit -m "Fix missing tracks and save dates before mass deleting playlists"

Playlists2$ git checkout fdea81464c9fff080249b5287693a4d0555fcc06
C:\WINDOWS\system32>ROBOCOPY Playlists2 Playlists1 /MIR /COPY:D /XD .git
Playlists1$ GIT_AUTHOR_DATE="2016-11-13 22:11:51" GIT_COMMITTER_DATE="2016-11-13 22:11:51" git commit -m "Remove unused playlists and collapse soundtracks into mega playlist"

Playlists2$ git checkout 0fe301fc61526944ae178d360b0482739e0dfefc
C:\WINDOWS\system32>ROBOCOPY Playlists2 Playlists1 /MIR /COPY:D /XD .git
Playlists1$ GIT_AUTHOR_DATE="2016-11-13 22:18:34" GIT_COMMITTER_DATE="2016-11-13 22:18:34" git commit -m "Remove interwoven, contemporary, duplicate, and missed playlists"

Playlists2$ git checkout 
C:\WINDOWS\system32>ROBOCOPY Playlists2 Playlists1 /MIR /COPY:D /XD .git
Playlists1$ GIT_AUTHOR_DATE="2016-11-13 22:22:00" GIT_COMMITTER_DATE="2016-11-13 22:22:00" git commit -m "Add new playlist for Aurora"

我恢复了旧版本的播放列表目录,将其重命名为播放列表 1(必须删除使目录显示为播放列表的 desktop.ini),并使用当前损坏的版本播放列表 2,检查了播放列表 2 中的每个提交,将数据镜像到 Playlists1,不包括 .git 文件夹,并使用日期覆盖进行提交。

我将使用我创建的测试存储库,因为有一种方法可以修复 Git 存储库,以便它再次开始提交正确的作者日期(因为前 2 个是重复的,接下来的三个是重复的),在此之前我不会接受这个问题。