2014-11-24 82 views
2

我準備把我的項目的源代碼移到Git。到目前爲止,我還沒有使用任何版本控制系統來跟蹤這些變化,但是我通過附加日期來維護文件的後續版本。例如,對於名爲「myfile」的文件,我將保留副本,如myfile-d20130629,myfile-d20140223,myfile-d20141019等。 稱爲myfile(沒有日期)的副本將對應於最新版本。如何將版本化文件手動移動到git(版本控制)?

有沒有一種方法(使用Git或其他方式)填充與這些過去的版本相對應的提交的全新版本庫的歷史記錄?換句話說,這樣的回購的歷史將包含提交d20130629,提交d20140223提交d20141019

此外,是否有可能在每個提交中添加正確的(過去)日期?

回答

2

是的,你可以。您可以使用下面的腳本:

#!/bin/sh 

git init 

for i in $(ls -1tr) 
do 
    cp "$i" myfile 
    git add myfile 
    COMMIT_MESSAGE=$(echo "$i" | cut -d '-' -f2) 
    COMMIT_DATE=$(echo "$COMMIT_MESSAGE" | sed -E 's,([0-9]{4})([0-9]{2})([0-9]{2}),\1.\2.\3,g') 
    echo $COMMIT_DATE 
    git commit -m $COMMIT_MESSAGE --date=$COMMIT_DATE 
done 

記住ls輸出不應該在更嚴重的腳本來分析,它會在這裏工作只有當文件可以在正確的順序由他們修改日期進行排序。

+0

非常感謝您的回覆。要求是在該名稱(myfile)下添加myfile的舊版本(myfile-d *),而不是單獨的新git文件。文件myfile的最新版本已被添加。所以,即使我們用'git add myfile'替換'git add'$ i''我不知道這是否合理...... – Konstantinos 2014-11-24 15:39:28

+1

好吧,我誤解了你的問題,看到更新的答案 – 2014-11-24 15:50:28

+0

謝謝你的腳本那可以完美地完成這項工作! – Konstantinos 2014-11-24 17:38:27