我有三个名为[1,2,3]的压缩文件夹,每个文件夹包含相同的项目1,最早的3个,最新的3个。我正在寻找一种方法将所有这些合并到3个git提交中,最常见的3个是文件夹内容。
我想我可以做到以下几点:
git init
git add -A
git commit -m "first commit
git add -A
git commit -m "second commit
git add -A
git commit -m "third commit
有人能告诉我这是否是最好的方法吗?
答案 0 :(得分:5)
将您的三个zip文件解压缩到三个不同的目录中。
在第四个目录中初始化git repo。
然后利用--work-tree
option,它允许您从git仓库执行git命令,但内容位于所述git仓库的外:
cd /your/git/repo
git add --work-tree=/path/to/zip1 -A .
git commit -m "Add v1"
git add --work-tree=/path/to/zip2 -A .
git commit -m "Add v1"
git add --work-tree=/path/to/zip3 -A .
git commit -m "Add v3"
换句话说,您可以添加不同的内容而无需从git目录移动!
答案 1 :(得分:4)
以下是我将如何处理此问题
获取版本1提交
mkdir MyProj
cd MyProj
git init
# unzip version1 into MyProj
git add -A
git commit -m "Version 1"
提交第2版
# delete everything but the .git directory in MyProject
# unzip version2 into MyProj
git add -A
git commit -m "Version 2"
提交第3版
对zip文件的版本3重复上述操作。
答案 2 :(得分:2)
每次运行git init
时,您都会创建一个空存储库。
如果只有三个文件夹并且您只执行一次,那么这将有效(如果省略git init
)。请确保不要删除.git
文件夹。
您甚至可以解压缩这三个文件夹并将.git
文件夹连续移动到每个文件夹中并在每个单独的文件夹中提交,最终文件夹是新存储库的开头。
答案 3 :(得分:0)
是。只需确保完全替换内容,并捕获所有添加和删除的文件。