如何在Git中将多个文件夹合并为一个项目?

mlnl4t2r  于 2022-11-20  发布在  Git
关注(0)|答案(2)|浏览(265)

我正在Udemy上学习Angular的教程,导师提供了代码,但是每一课都是一个新文件夹中的新项目。我想把所有的文件夹合并到一个单独的仓库中,这样每个文件夹都是一个提交。我该怎么做呢?
这是本课程的一个部分的截图。正如我所说的,我希望每个文件夹都是一个提交,因为每个文件夹的内容几乎都是一样的。对我来说,每次上新课时点击“git checkout”比打开每个文件夹,安装依赖项,启动一个新服务器要容易得多。

到目前为止,我想到的唯一解决方案是转到项目的开头,点击提交,然后删除所有文件并粘贴下一课的内容,再次点击提交,依此类推,但这将非常耗时。

bxjv4tth

bxjv4tth1#

把它们合并成一个怎么样?
在同一级别,您有所有这些不同的目录与数字,创建一个新的连接在一起:

git init todo-junto # I know he speaks spanish so it's fine ;-)
cd todo-junto
for i in 15 17 18 19 20 21; do # all the separate projects
    git remote add tarea$i ../$i # tarea15 for 15, tarea17 for 17
    git fetch tarea$i # get to see the branches in that repo.... we will _copy_ main
    git branch tarea_$i tarea$i/main # create local branch tarea_15 for remote tarea15/main and so on
    # now we can remove the remote as we have the local branch
    git remote remove tarea$i
done

现在,您在单个存储库中拥有了不同的分支(tarea_15tarea_17等)。

q3qa4bjr

q3qa4bjr2#

您可以使用git init在任何目录中创建一个存储库,因此只需在包含所有其他文件夹的文件夹中运行该命令,就可以创建一个包含所有示例的存储库。
如果你想把所有的文件夹作为单独的提交放入新的repo中,而不是一次全部,你需要一次一个文件夹地进行(在一个新文件夹中git init,然后在一个lesson-folder中逐个复制,并暂存/提交更改)。
除了shell脚本之外,我不知道有什么方法可以自动化每个文件夹的所有提交,但我真的看不出这样做有什么价值。

相关问题