git实现其他仓库代码持续更新到自己仓库
学习过程中的简单记录,若问题敬请指教!文章持续更新中...
路过的朋友,可以点个赞,关注一下~~~
业务场景
自己需要对一个开源的系统代码进行二次开发时,发现开源系统代码在持续更新中,此时您就想如果开源系统开发新功能或者修复xxxbug时可以持续更新同步到自己的仓库代码中多好,既省时又省力。同时还想保存开源仓库本身所有人的更新记录。
接下来以模拟一个完整的业务操作流程,仓库A自己的,仓库B三方开源的。
- 创建空的仓库A,并克隆仓库B的代码到本地
git clone 仓库B代码地址
2.进入项目克隆的代码项目中,删除原有git文件
rm -rf .git
3.初始化仓库,让它变成属于我们的仓库A
git init
4.将代码添加到暂存区
git add .
5.将暂存区代码添加到本地仓库
git commit -m "提交说明"
6.关联自己仓库地址(仓库A)
git remote add origin 自己仓库A的地址
7.提交代码
git push -u origin master
8.再创建一个代码分支dev,在master上进行自主开发,使用dev分支和仓库B的代码进行合并
git branch dev
9.再建立一个关联仓库B,dipository
是关联的别名,用户可自行定义
// 建立一个别名 dipository 来关联仓库B
git remote add dipository 仓库B地址
// 拉取仓库B的代码(会拉取仓库B的所有分支到本地)
git fetch dipository
10.合并仓库B中master分支代码到仓库A中dev分支
// 切换仓库A至dev分支
git checkout dev
// 合并仓库B中master分支(dipository:别名;master:分支)
git merge dipository/master
特别注意:第一次合并代码会遇到
refusing to merge unrelated histories
报错解决方案:
git merge 分支名 --allow-unrelated-histories
示例
git merge dipository/master --allow-unrelated-histories
- 当想要更新其他仓库代码到自己仓库时
- 首先从自己仓库的master切换到自己仓库的dev分支
git checkout dev
- 拉取其他的仓库最新代码
// 拉取仓库B 的master分支
git pull dipository master
// or 拉取仓库B的所有分支
git fetch dipository
- 合并到dev分支,这时dev代码也已经更新了,可以直接推送到自己的远程仓库,也可以本地
// 合并仓库B 的master分支
git merge dipository/master
// 推送远程dev分支
git push
- 然后切换到master ,把dev合并到master,master就拥有了其他仓库最新的代码了。
// 切换master 分支
git checkout master
// 合并dev分支
git merge dev
后记
本文纯仅属于个人的一些简单的见解,比较浅显,若有不妥之处还请不吝赐教!!!(☆_☆)
如果本文对你有所帮助,欢迎点赞!!!
o( ̄▽ ̄)d