mic*_*hid 11
简而言之,您可以检出一个存储库,将远程添加到第二个,将第二个重新设置在第一个之上,然后将结果推送到新的单个远程存储库:
克隆第一个存储库并将远程添加到第二个
git clone https://first.repo
git remote add second https://second.repo
Run Code Online (Sandbox Code Playgroud)
获取第二个并将其主分支检出到本地分支 second
git fetch second
git checkout second/master
git checkout -b second
Run Code Online (Sandbox Code Playgroud)
将第二个存储库的 master 分支重新设置在第一个存储库的 master 分支之上。在此过程中解决任何潜在的冲突。
git rebase master second
Run Code Online (Sandbox Code Playgroud)
推送到新的上游存储库
git push -u ...
Run Code Online (Sandbox Code Playgroud)
这导致两个提交历史被一个接一个地连接起来。
小智 6
创建一个新的 git 存储库并使用新的 README 文件进行初始化。
$ mkdir merged_repo
$ cd merged_repo
$ git init
$ touch README.md
$ git add .
$ git commit -m "Initialize new repo"
Run Code Online (Sandbox Code Playgroud)
添加第一个远程存储库
$ git remote add -f first_repo `link_to_first_repo`
$ git merge --allow-unrelated-histories first_repo/master
Run Code Online (Sandbox Code Playgroud)
创建一个子目录并将所有first_repo 文件移至其中。
$ mkdir first_repo
$ mv * first_repo/
$ git add .
$ git commit -m "Move first_repo files to first_repo directory"
Run Code Online (Sandbox Code Playgroud)
添加第二个远程存储库
$ git remote add -f second_repo `link_to_second_repo`
$ git merge --allow-unrelated-histories second_repo/master
Run Code Online (Sandbox Code Playgroud)
修复所有合并冲突并完成合并,如下所示
$ git merge --continue
Run Code Online (Sandbox Code Playgroud)