当我尝试运行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。

广告
将在 10 秒后关闭
bannerAds