我有一个git repo,其根目录中有几个子目录,例如
repo<master>/a/files
repo<master>/b/files
...
我想将每个子目录移出主分支并进入它自己的分支,然后在这个过程中将文件移到一个目录中,这样我就会留下这样的东西。
repo<branch_a>/files
repo<branch_b>/files
...
我对如何操作有一些想法,例如:
无论如何,我可以更有效地做到这一点,即减少删除但仍保留修订历史记录?
这个问题与Detach (move) subdirectory into separate Git repository类似,但我没有将每个子目录移动到一个单独的存储库中,而是将其移动到自己的分支中。
答案 0 :(得分:1)
这是一种适度简洁的方法:
master
上的所有子目录,每个子目录都在单独的提交中master
Pseudobash:
$ for dir in one two three; do git rm -r $dir; git commit -m "Remove $dir"; done
$ git log # For commit SHAs
$ git checkout -b one
$ git revert $sha_that_removed_one
$ git mv one/* .
$ git commit -m "Move one files to the top level"
答案 1 :(得分:0)
这似乎是使用git submodules
的好地方