如何在git存储库中创建单个git文件夹

纪尧姆

我有以下文件夹布局:

workspace_folder (git repository)
  *  project1 
  *  project2 
  *  project3
  *  ... 

workspace_folder是一个git存储库,因此项目文件夹已经受版本控制。里面进行了很多修改。

我如何在保留其历史记录的同时使它们成为单独的git存储库?

阿尼米·沃尔皮斯(AnimiVulpis)

这听起来可能很疯狂,并且很可能有更好的解决方案。

  • 尝试获取所有最先触及您的子项目之一的提交

    git log --pretty=format:%H -- projectA/ > <all-the-commits>
    

这应该将所有对该文件夹所做的更改的提交哈希写入文件中all-the-commits

  • 然后创建一个新的孤立分支(这意味着它没有任何父提交)

    git checkout --orphan <new-branch-name>
    
  • 然后将您获得的所有提交樱桃挑选到这个新分支上

    cat <all-the-commits> | xargs -n 1 git cherry-pick
    
  • 检查并更正当前工作目录

  • 最后但并非最不重要的一点是,创建一个新的仓库,并将这个分支推到另一个仓库中。

    git push <new-repo> <new-branch-name>
    

最终结果应该是,在新存储库中,您只有子项目中的文件以及所有更改此文件夹中文件的提交(只有那些提交)。


我没有机会测试这些步骤,如果这听起来像是一个可行的解决方案,我将检查并在需要时进行详细说明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不同的git存储库中的文件夹中创建独立的git存储库?

如何在Git存储库中为特定文件夹创建忽略规则例外?

如何从存储库创建 .git 文件夹

Azure DevOps:如何使用REST API存储库在GIT存储库中创建文件夹

如何在git分支中创建子文件夹?

在单个文件夹中为多个存储库设置Git

Git缺少存储库中的文件和文件夹

从 git 存储库中的子文件夹提交 .git 文件夹

在不使用Git的情况下在GitHub存储库中创建文件夹

OneDrive同步文件夹中的Git存储库

恢复Git存储库中已删除的文件夹

git clone:恢复包含存储库中的文件夹

从本地存储库中删除文件/文件夹后,如何从远程git存储库中获取文件/文件夹?

在Git中检出单个文件夹

如何将 git 存储库文件夹转换为常规文件夹?

如何仅使用 Jenkins 从存储库中 git pull 特定文件夹?

Jenkins 如何确定 GIT 存储库的特定文件夹中的更改?

如何从git存储库中删除外部的空文件夹?

如何在GitHub存储库中创建文件夹?

如何在GitHub存储库中创建文件夹?

如何在AWS CodeCommit存储库中创建文件夹?

如何在我的 GitHub 存储库中创建文件夹?

在git存储库中,如何在不丢失Git历史记录的情况下删除旧的已重命名的“大写”文件夹

如何集成和使用复杂结构的 GIT 存储库同步并存储在 PYTHONPATH 中的文件夹中

如何在gitlab存储库中下载单个文件夹或文件

在存储库的 .git 目录中创建自定义文件夹是否存在任何技术问题?

Git:如何在不将其与父存储库分离的情况下,在私有存储库中将子文件夹作为公共存储库?

如何在子文件夹中设置 git origin?

如何在git中删除分支的整个文件夹