将具有完整历史记录的Git repo A移动到Git repo B(非空)

将具有完整历史记录的Git repo A移动到Git repo B(非空),git,macos,version-control,Git,Macos,Version Control,我想将我的所有文件从Git Repo A移动到Git Repo B,并具有完整的历史记录。Git B已经包含另一个项目文件。我尝试了几种方法,例如 我尝试通过终端执行所有提交。但是我得到的是“git过滤器分支致命:myDirectory/:'myDirectory'在存储库外部执行git过滤器分支--子目录过滤器muDirectory--all时无法获得提交” 我需要详细的指导,逐步将所有文件从一个回购协议转移到另一个回购协议。如有任何帮助,将不胜感激。 进入repoB并添加一个带有repo

我想将我的所有文件从Git Repo A移动到Git Repo B,并具有完整的历史记录。Git B已经包含另一个项目文件。我尝试了几种方法,例如

我尝试通过终端执行所有提交。但是我得到的是
“git过滤器分支致命:myDirectory/:'myDirectory'在存储库外部执行
git过滤器分支--子目录过滤器muDirectory--all时无法获得提交”

我需要详细的指导,逐步将所有文件从一个回购协议转移到另一个回购协议。如有任何帮助,将不胜感激。

  • 进入
    repoB
    并添加一个带有
    repoA URL
    的新遥控器(例如,
    repoA
  • 使用
    repoA/master history
    签出新分支(例如,
    branchA
  • Git将所有文件夹/文件移动到新的子目录
    RepoA
    。命令
    gitmv
  • branchA
    中提交更改
  • 签出
    master
    分支并合并
    branchA
    分支
按照以下命令操作:

# go into repoB master branch
$ git remote add repoA <repoA-url>
$ git remote -v                     # confirm repoA is added named 'repoA'

$ git fetch repoA
$ git checkout -b branchA repoA/master
$ git mv <folder/file> repoA/<folder/file>     # repeat untill all files/folders are moved
$ git commit -am 'Moved repoA folder/file into repoA dir' 


$ git checkout master
$ git merge branchA

$ git add .
$ git commit -m 'Added repoA into repoA directory'
$ git push origin master
#进入repoB主分支
$git远程添加repoA
$git remote-v#确认添加了名为“repoA”的repoA
$git
$git结帐-b branchA repoA/master
$git mv repoA/#重复,直到移动所有文件/文件夹
$git commit-am“已将repoA文件夹/文件移动到repoA目录”
$git签出主机
$git合并branchA
$git add。
$git commit-m“已将repoA添加到repoA目录”
$git推送原始主机

Git子树:您还可以使用以下工具来完成此操作:

$git子树添加--prefix=repoA/master

将repoA的
master分支
拉入名为
repoA

的子目录中,将一个repo移动到另一个非空repo中会产生什么结果?我的repo B已经有Proj1和Proj2。现在我想把RepoA作为Proj3移动到RepoB中,并包含RepoA中的所有提交历史记录。我变得很致命:在git pull RepoA master后拒绝合并无关历史记录错误你能在OP(原始帖子)中附加你的
命令和错误详细信息吗?顺便问一下,你想把
RepoA
作为一个单独的repo添加到你的
RepoB
,还是,仅根目录中的所有文件夹/文件?与根目录中的文件夹一样directory@SasiM
——允许不相关的历史记录
$ git subtree add --prefix=repoA/ <repoA-url> master