将名称中包含版本的文件夹移动到正确的 git 历史记录中

将名称中包含版本的文件夹移动到正确的 git 历史记录中

我有一个文件夹,其中包含许多文件,格式为 svs_a.png、svs_b.png、svs_xyz.png、svs_something.png 等 svs_final.png。这些都是根据糟糕的旧“重命名每个版本”系统命名的同一文件的不同版本。但是现在文件夹变得太杂乱了,我觉得自己像个白痴,从一开始就没有使用合适的 VCS。我现在想把这些都拉进 git 仓库,如果我能把每个文件作为同一文件的不同版本拉进仓库,那就太好了。有没有办法让 git 做到这一点?

还有几个名为 svs_color_a.png 的文件,... svs_color_final.png,我想将它们存储在 repo 的不同分支中(比如名为“color”)。

答案1

假设是Linux系统:

#!/bin/sh -e
import_files() {
    for file; do
        date=$(stat -c %y "$file")
        cp "$file" svs.png; git add svs.png
        git commit -m "Imported $file" --date="$date"
    done
}
git init
import_files svs_{first,second,third,fourth,.....,final}.png
git checkout --orphan color
import_files svs_color_{first,second,third,...,final}.png

使用git checkout --orphan会创建一个完全独立的分支。git checkout -b相反,使用 会创建一个从 master 中的最后一次提交继续的分支。

相关内容