2014-11-24 68 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