首先去了解git,然后安装,然后熟悉基本使用命令和基本操作
https://git-scm.com/docs git操作手册官网很详细的命令,可以使用浏览器直接翻译
接下来合并两个仓库:
思路:根据合并分支,可以将一个库作为另一个库的分支然后合并:
方法介绍
Git可以合并两个分支,那么合并两个仓库的方法就是将要合并的仓库A作为另一个仓库B的分支,然后去合并分支即可。
详细方法
下面列举一个例子:
有两个仓库new 和 old (这两个仓库同属于一个目录),new的分支master,old的分支也是master。
现在的目的是将old库合并到new的仓库:
1.进入new仓库
cd new
2.将old仓库作为new的远程仓库
git remote add other ../old (other是别名 如果old不是在同一个目录下可以自己写目录)
3.拉取other
git fetch other
4.创建分支并进入
git checkout -b oldbr other/master
5.切换到new的master的master分支
git checkout master
6.合并oldbr的分支
git merge oldbr
7.添加到缓存区(index)
git add .
git status -s
看看是不是有修改
删除所建立的远程仓库和分支(不需要删除的话可以省略)
git remote -v 看看有什么远程
git remote rm other 删除远程other的仓库
git branch 查看分支
git branch -d older 删除分支为older的分支
合并不同目录的相同文件
场景:当我们的包名叫的不一样但是文件又是一样的现在想合并使用这样的方法
注意:在使用下面的other和分支older的时候上面的如果没有删除你需要起其他的别名我是删了上面方法中的别名的
同样还是以上面的old和new为例,在这两个仓库中有两个文件夹,
old\com.gl.courtbanklink.ui\src\com\gl\dn
new\com.gl.courtbanklink.ui\src\com\gl\courtbanklink
在dn和courtbanklink的文件下有相同的目录和文件现在合并这俩个文件夹
如果使用上面的方法就会造成不一样的文件夹下面的文件会删除,所以我们需要其他的方法
就是将两个目录分别作为仓库去合并,作为仓库合并的方法和上面的方法一样:
先创建两个目录为仓库
cd old\com.gl.courtbanklink.ui\src\com\gl\
git init dn
cd new\com.gl.courtbanklink.ui\src\com\gl\
git init courtbanklink
然后分别将文件进行提交方法是一样的以一个为例:
git add .
git status -s 看看状态 全部为新增
git commit -am ‘备注自己写’
同理另一个文件夹也这样做
然后就是使用两个库合并的方法进行了:
git remote add other ../../../../../../../old/com.gl.courtbanklink.ui/src/com/gl/dn/
将另一个仓库作为远程库
然后
git fetch other
git checkout -b older other/master
git checkout master
git merge older (可能会报错:fatal: refusing to merge unrelated histories)解决方法:git merge older --allow-unrelated-histories 即可合并
git add . 告诉git我合并完了
git status -s 看看状态是不是有添加的和修改的
git commit -am ‘合并不同目录下相同文件成功!’
别着急,因为这是new仓库下的子仓库,回到new下,看看状态是不是有了新的提交的
git status -s
一看是有了新的需要提交的文件了,这就是合并了子文件夹的原因,然后执行提交
git add .
git commit -am ‘提交合并子文件夹’
这样就成功了
**你刚才子目录仓库的提交不需要推送到远程库的因为他也没有远程库所以可以将你的文件删除但是又不删除工作区的,
git rm -r --cached <file夹>
接下来看看你的文件是不是有冲突的,然后手动解决保留的版本然后再次提交更新远程仓库即可。