我准备将项目的源代码移到Git。到目前为止,我还没有使用任何版本控制系统来跟踪更改,但我通过附加日期来维护连续版本的文件。例如,对于名为" myfile"的文件,我会保留myfile-d20130629
,myfile-d20140223
,myfile-d20141019
等副本。
名为myfile
(没有日期)的副本将对应于最新版本。
有没有办法(使用Git或其他方法)使用与过去版本相对应的提交来填充全新存储库的历史记录?换句话说,这样一个repo的历史将包含commit d20130629
,commit d20140223
commit d20141019
。
此外,是否可以在每个提交中添加正确的(过去)日期?
答案 0 :(得分: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
输出不应该在更严肃的脚本中进行解析,并且只有在文件可以按修改日期按照正确的顺序排序时才能在此处工作。