将 GIT 个 repo 子文件夹变成一个分支

Turn a GIT repo subfolder into a branch

是否可以将 GIT 存储库的子文件夹转换为它的分支?

从一个带有文件夹的分支开始

-main
  /Folder_A
  /Folder_B
  readme.md

到很多分行

-main
  readme.md
-A
  Content of Folder_A
-B
  Content of Folder_B

原因是从 TFVC 存储库导入到 GIT 存储库。

以后分支会保持独立吗?如果它们将保持独立,请随意从 main 创建两个新分支,比如 AB。然后,在 main 中删除 2 个文件夹,并在每个单独的分支中进行必要的调整...例如,在 A

git checkout A
git rm readme.md
git rm Folder_B
git commit -m "Removing unnecessary stuff from this project"

这应该够好了。通过这种方式,您可以在所有 3 个分支中保留到目前为止共同开发的历史。如果你不想要那样,你宁愿将它们作为单独的项目从一开始就分开,那么你应该考虑使用 git filter-repo https://github.com/newren/git-filter-repo

Is it possible to turn subfolders of a GIT repository into its branches?

当然,有一个简单的命令可以做到,它将文件夹转换为包含所有历史记录的分支

git subtree split ...

git subtree split <path> -b <branch> 将“主要”拆分为分支,然后添加您可以将分支推送到远程。

# split the "main repo"
git subtree split -P path -b <branch1>