2016-11-14 67 views
3

我使用Git for Windows以及隨之而來的GUI,當我在Git Bash或Git GUI中創建一個新的提交時,它會創建與之前的日期相同的新提交。Git for Windows正在創建提交重複日期到前一個的提交?

Git GUI showing duplicate dates created

我不知道爲什麼它這樣做。我已經完成了大部分我今晚需要完成的提交,但是我不希望所有提交都會在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 
+1

下一次你要做或將要在git bash中進行提交時,執行'echo $ {!GIT _ *}',這將顯示任何git的名稱是否覆蓋在某處。你在這裏描述的這種行爲是不正常的。到目前爲止,我唯一能想到的就是你已經設置並導出了'GIT_COMMITTER_DATE',也許你找到了一個腳本而不是運行它? – jthill

+0

@jthill我正在與'GIT_COMMITTER_DATE'在另一個存儲庫上玩,就像在你的答案(原文?)我是從另一個分支快速轉發提交,他們都有相同的日期,所以我試圖導入他們的正確日期。其實,現在我看着它沒有工作,並在2016年設置了我的2015年提交中的兩個:https://github.com/NobleUplift/BackToBack/commits/master – NobleUplift

+0

我會嘗試解決上述問題當我回到家時,我會哭泣自己睡在一個角落,現在我必須再次嘗試在BackToBack上做一個「過濾分支」。 – NobleUplift

回答

1

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

我知道,我已經修改承諾又不影響下一承諾在其他系統上,即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" 

我恢復了舊版本的我的播放列表目錄,將其重命名Playlists1(不得不刪除所做的目錄顯示爲播放列表中的desktop.ini)與當前版本損壞Playlists2,檢查了每個從Playlists2提交,鏡像將數據發送到播放列表1(不包括.git文件夾),並使用日期覆蓋進行提交。

我會玩弄我創建的測試庫,因爲有一種方法來修復Git存儲庫,以便它再次開始提交正確的作者日期(因爲前2個是重複的,後面3個是重複的),以及直到那時我纔會拒絕這個問題。

3

Git takes rarely-used overrides from the environment,我能想到的唯一能產生你所描述這裏的行爲是如果你不知何故離開了GIT_COMMITTER_DATE設置和導出。也許你從腳本進入你的運行shell?

無論如何,你可以看到任何當前git覆蓋的名稱,如果你找到任何它應該這樣做的話,它們會被取消設置。

+0

我出來晚了,所以昨晚我沒有打開電腦。今天祝你好運。 – NobleUplift

+0

我將回聲的輸出添加到了我的問題中。只設置了'GIT_EXEC_PATH'。 – NobleUplift

+0

並且之後立即執行命令行中的'git commit',並且生成的提交沒有系統日期?檢查系統的日期的想法,這是在虛擬機或其他?在你的系統上有一些非常非常敏感的東西。 – jthill