当我尝试运行git init并执行git add *时,发现下一级目录中已经存在git,因此我希望对其进行整合
在~/myprojects/<新建的git根目录>下运行git init并git add *后,收到已经存在于~/myprojects/<新建的git根目录>/AAA/中的git的提示。
我想要移除”AAA”目录下的git,并将它合并到”新建的git根目录”的git中。
策略
如果使用git subtree add命令,可以将其他git存储库添加为子目录,所以要使用它。但是,由于当前已经存在子目录,如果直接执行该命令会被警告。因此,需要先将其重命名或者移动到别处,然后再执行。
以下是前提
假设已经存在一个名为AAA的文件夹。假设在新创建的git根目录下进行了git init操作。
假设我们当前位于新创建的git根目录下。#cd到<新创建的git根目录>的路径。
将通过git add命令添加到暂存区的内容进行清理。
如果没有执行git add命令,可以稍微往下一点就可以了。
git rm -rf --cached *
当查看状态时
git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
AAA/
一旦提交。
git commit --allow-empty --allow-empty-message -m ""
等等
如果你还没有像git add等操作那样按照预定战略执行,你可以从这里开始。
暂时改名字
mv AAA AAA_
远程注册(XXX 为工作所需的适当名称)
git remote add XXX AAA_/
确认
git remote
XXX
将历史记录整合
git subtree add --prefix AAA XXX master
打掃
检查完各个方面并感到安心后,让我们删除AAA(如果担心的话,可以移动到其他地方先保存)。
rm -rf AAA_
将远程也关闭
git remote remove XXX
现在只剩下一般的事情了。
比如说
将所有文件加入到Git中
等等
如果有人想要做一些美好的事情,可以阅读 “git subtree add –help” 等等。
这次没有使用git merge、git fetch、git read-tree和git subtree merge。