合并多个git仓库,保留提交的历史记录

两个不同地址的库:

https://127.0.0.1/mygroup/project1.git,分支dev
https://127.0.0.1/mygroup/project2.git,分支dev

现在需要把这两个git仓库的dev分支合并到一个新的git仓库的dev分支:

https://127.0.0.1/mygroup/allprojects.git

按以下步骤操作:

一、克隆allproject到本地

git clone https://127.0.0.1/mygroup/allprojects.git

二、切换到allprojects的dev分支

git checkout dev

三、添加project1远程仓库,命名为project1。

git remote add project1 https://127.0.0.1/mygroup/project1.git

四、从远程仓库拉取project1

git fetch project1

五、将project1仓库拉取dev分支作为新分支checkout到本地,新分支名设定为project1-dev

git checkout -b project1-dev project1/dev

六、切换到allprojects的dev分支

git checkout dev

七、将本地的project1-dev合并到当前的dev分支

git merge project1-dev

如果报错:fatal: refusing to merge unrelated histories … 则使用加上一个参数: git merge project1-dev --allow-unrelated-histories

同样,合并project2仓库,重复步骤三到七。

八、最后,推送合并后的dev分支到远程即可

git push origin dev

版权声明:著作权归作者所有。

相关推荐

迁移SVN仓库及历史记录到Git

迁移svn到git,需要安装git-svn。迁移过程如下:1、创建SVN用户文件(如authors.txt)authors.txt格式如下:zhangsan = 张三 <zhangsan@address.com> lisi = 李四 <lisi@address.com> ... 可以使用以下命令把svn的用户导出:

Git同步主仓库的代码到fork仓库

首先需要添加主仓库为本地的远程仓库。配置远程仓库1、在本地项目的目录下,查看已配置的远程仓库$git remote -v origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin  https://github.com/YOUR_USERNAME/

如何修改Git已提交的日志

在某些时候,你发现了之前提交到git上的日志描述不全或者描述有误,这时你是会想要修改它的。 但提交已经是push到服务器,甚至是已经有好几个提交在后面了,这个怎么办呢?Git提供了一些方法来修改。下面分为四种情况来处理。情况一:最后一次提交且未push执行以下命令:git commit --amend git会打开$EDITOR编辑器,它会加载这次提交的日志,这样我们

Git使用mergetool处理合并冲突

Git做合并时难免会发生冲突,发生冲突我们可以使用git的mergetool来处理。在使用mergetool前需要先了解下Git用于处理冲突的几个概念:LOCAL - 本机在当前分支下文件的headREMOTE - 在远程将要合并到LOCAL当前分支的headBASE - the common ancestor(s) of LOCAL a

Git撤销最后一次提交

Git可以使用reset重置来撤销提交。方法一撤销最后一次提交git reset HEAD~1 执行后,状态重置为上一次提交,且撤回提交的文件的状态变回unstaged,即文件没有被git跟踪。示例$ git commit -m 'add test.html' [master ade6d7e] add&nbs

Python合并多个字典的方法

示例x = {'a': 1, 'b': 2} y = {'b': 3, 'c': 4} 相同属性合并,后者覆盖前者的值。x和y合并后>>> z {'a': 1, 'b': 3, 'c': 4} Python 3.