前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git-合并两个不同的仓库

Git-合并两个不同的仓库

作者头像
leader755
发布2022-09-29 11:41:03
2.3K0
发布2022-09-29 11:41:03
举报
文章被收录于专栏:万丈高楼平地起

背景:由于拆分微前端,需要将最新代码合并到已经拆分的微前端项目,即需要将 2 个项目合并。

1.git 合并两个不同的仓库必备知识

1>.列出本地已经存在的分支

代码语言:javascript
复制
git branch

2>.查看当前 git 关联的远程仓库

代码语言:javascript
复制
git remote -v

3>.解除当前仓库关联的远程仓库

代码语言:javascript
复制
git remote remove origin  //origin 远程分支别名

4>.git 同时关联多个远程仓库

代码语言:javascript
复制
//当前默认仓库别名为origin
git remote add origin http://km-git1.kemai.cn/youshu/youshu-smallshop-frontend.git

//其他仓库别名为other
git remote add other http://km-git1.kemai.cn/youshu/xdd-front-end.git

5>.从远程切出新分支

代码语言:javascript
复制
//从默认的远程仓库切出一个新分支
 git checkout -b master origin/master

//从其他的远程仓库切出一个新分支(
//注意同一个仓库中不能存在2个同名分支,所以取个别名,但是同一个仓库中不同的分支可以关联多个远程仓库。
//一个本地分支只能关联一个远程仓库
git checkout -b other other/master

6>.切换分支

代码语言:javascript
复制
//切换到关联默认仓库远程master分支的本地分支master
git checkout master

//切换到关联其他仓库远程master分支的本地分支other
git checkout other

7>.更新仓库

代码语言:javascript
复制
git fetch --all //更新所有仓库

git fetch origin //更新指定仓库
git fetch other //更新指定仓库

8>.更新本地分支

代码语言:javascript
复制
/**更新主仓库代码**/
//先切换到other
git checkout master
//从默认的远程仓库更新
git pull origin master


/**更新子仓库代码**/
//先切换到other
git checkout other
//从其他的远程仓库更新
git pull other master

9>.推送代码

代码语言:javascript
复制
//推送到默认的远程仓库
git push -u origin master

//推送到其他的远程仓库
git push -u other master

10>.删除分支

代码语言:javascript
复制
git branch -D XXX  //强制删除

11>.重名分支

代码语言:javascript
复制
git branch -m  <branch>

12>.git 基础命令大全

更多基础命令请查看 https://www.yuque.com/docs/share/8bd713d2-0bc8-4758-85ba-5cb6ca764b92?# 《常见的 git 命令》

2.实际操作

1.项目仓库

代码语言:javascript
复制
现在有两个仓库 [leader/kkt](https://www.leader755.com) (主仓库)和 [leader/kkt-next](https://www.leader7555.com)(子仓库) 我们需要将 kkt-next 仓库合并到 kkt 并保留 kkt-next 的所有提交内容。

2. 克隆主仓库代码

代码语言:javascript
复制
git clone git@github.com:kktjs/kkt.git
//git remote add origin git@github.com:kktjs/kkt.git

3. 将 kkt-next(子) 作为远程仓库,添加到 kkt 中,设置别名为 other

代码语言:javascript
复制
git remote add other git@github.com:kktjs/kkt-next.git

4.从 kkt-next(子) 仓库中拉取数据到本仓库

代码语言:javascript
复制
git fetch other

5.将 kkt-next(子) 仓库拉取的 master 分支作为新分支 checkout 到本地,新分支名设定为 other

代码语言:javascript
复制
git checkout -b other other/master

6.切换回 kkt(主) 的 master 分支

代码语言:javascript
复制
git checkout master

7.更新本地分支

代码语言:javascript
复制
/**更新主仓库代码**/
//先切换到other
git checkout master
//从默认的远程仓库更新
git pull origin master


/**更新子仓库代码**/
//先切换到other
git checkout other
//从其他的远程仓库更新
git pull other master

8.将 kkt-next(子) 合并入 kkt (主)的 master 分支

代码语言:javascript
复制
git merge other
代码语言:javascript
复制
# 如果第 7 步报错 `fatal: refusing to merge unrelated histories`
# 请执行下面命令 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
git merge other --allow-unrelated-histories

在合并时有可能两个分支对同一个文件都做了修改,这时需要解决冲突,对文本文件来说很简单,根据需要对冲突的位置进行处理就可以。对于二进制文件,需要用到如下命令:

代码语言:javascript
复制
git checkout --theirs YOUR_BINARY_FILES     # 保留需要合并进来的分支的修改
git checkout --ours YOUR_BINARY_FILES       # 保留自己的修改
git add YOUR_BINARY_FILES

9.参考文章:

代码语言:javascript
复制
[https://segmentfault.com/a/1190000021919753](https://segmentfault.com/a/1190000021919753)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.git 合并两个不同的仓库必备知识
    • 1>.列出本地已经存在的分支
      • 2>.查看当前 git 关联的远程仓库
        • 3>.解除当前仓库关联的远程仓库
          • 4>.git 同时关联多个远程仓库
            • 5>.从远程切出新分支
              • 6>.切换分支
                • 7>.更新仓库
                  • 8>.更新本地分支
                    • 9>.推送代码
                      • 10>.删除分支
                        • 11>.重名分支
                          • 12>.git 基础命令大全
                          • 2.实际操作
                            • 1.项目仓库
                              • 2. 克隆主仓库代码
                                • 3. 将 kkt-next(子) 作为远程仓库,添加到 kkt 中,设置别名为 other
                                  • 4.从 kkt-next(子) 仓库中拉取数据到本仓库
                                    • 5.将 kkt-next(子) 仓库拉取的 master 分支作为新分支 checkout 到本地,新分支名设定为 other
                                      • 6.切换回 kkt(主) 的 master 分支
                                        • 7.更新本地分支
                                          • 8.将 kkt-next(子) 合并入 kkt (主)的 master 分支
                                            • 9.参考文章:
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档