将所有根目录移动到子文件夹中

Ind*_*von 5 git

在我的 git repo 中,应用程序位于根文件夹中,例如

.gitignore
pom.xml
data/
src/
README.md
...
Run Code Online (Sandbox Code Playgroud)

由于应用程序的重新设计(其中一部分是引入父 pom),我想将所有内容移动到一个子文件夹中,例如称为 system,然后创建第二个文件夹(例如称为 api):

system/
    .gitignore
    pom.xml
    data/
    src/
    README.md
    ...
api/
    src
    ...
...
Run Code Online (Sandbox Code Playgroud)

将所有内容移动到的最佳方式是什么system?根目录中每个文件/目录的 git mv 是否足够?

tle*_*man 0

我首先使用git ls-files获取 git 跟踪的所有文件,然后循环它们,将每个文件移动到新system/目录:

git ls-files | for f in $(cat -); do git mv $f system; done
Run Code Online (Sandbox Code Playgroud)

  • 这不是使结构扁平化吗?我不明白这如何运作? (2认同)