首页 > 其他分享 >【git】- 合并多个项目

【git】- 合并多个项目

时间:2023-07-03 11:46:40浏览次数:32  
标签:origin git 多个 合并 xx mv master new

合并多个项目为一个

场景

假设有三个项目a,b,c

a:远程地址为:https://xxx.xx/a.git ,分支为master
b:远程地址为:https://xxx.xx/b.git ,分支为master
c:远程地址为:https://xxx.xx/c.git ,分支为master

合并后的仓库地址为https://xxx.xx/all.git, 目录结构为

all 
  - a_new   # 对应原项目a
  - b_new   # 对应原项目b
  - c_new   # 对应原项目c

步骤:

# 1.本地新建 all 目录,并初始化
mkdir all
cd all
git init

# 2.在 all 中添加 a,b,c 的远程分支
git remote add origin_a https://xxx.xx/a.git
git remote add origin_b https://xxx.xx/b.git
git remote add origin_c https://xxx.xx/c.git

# 3.验证是否添加成功
git remote -v

# 4.在 all 目录下,获取 a, b,c 的 master 分支数据,如果是其他分支修改master即可
git fetch origin_a master
git fetch origin_b master
git fetch origin_c master

# 5.开始合并,并移动到子目录中
# 合并a项目
git merge origin_a/master --allow-unrelated-histories  # 合并,并保留历史。--allow-unrelated-histories:允许合并不相关历史
mkdir a_new   # 新建子文件夹
# 移动到此文件中(mv!排除需要忽略的文件夹,此处排除了.git, a_new文件夹,需根据实际情况排除相关的文件夹不移动)
# 注意:报错的话执行下shopt -s extglob
mv !(.|..|.git|a_new) a_new
git add . && git commit -m "merge a_master and mv to a_new"  # 生成一条commit日志

# 合并b项目
git merge origin_b/master --allow-unrelated-histories
mkdir b_new
mv !(.|..|.git|a_new|b_new) b_new
git add . && git commit -m "merge b_master and mv to b_new"

# 合并c项目
git merge origin_c/master --allow-unrelated-histories
mkdir c_new
mv !(.|..|.git|a_new|b_new|c_new) c_new
git add . && git commit -m "merge c_master and mv to c_new"

# 6.推送 all 的 master 分支到远程
git remote add origin https://xxx.xx/all.git
git push -u origin master

注意:执行 mv !(.|..|.git|a_new) a_new 时可能会报错误 -bash: !: event not,执行一下命令 shopt -s extglob
img

标签:origin,git,多个,合并,xx,mv,master,new
From: https://www.cnblogs.com/hm201402/p/17522361.html

相关文章

  • 云原生时代,如何通过 KubeSphere x 极狐GitLab 构建安全应用?
    本文整理自云原生Meetup杭州站上,极狐(GitLab)DevOps技术布道师马景贺的演讲。当听到云原生的时候,你会想起什么?可能很多人很自然地就会想到Kubernetes、容器、微服务、开源等等,这些关键词是我们接触云原生绕不开的话题。但是以上还少了一个关键词:安全。云原生从2013年出现,201......
  • git 开发常用命令
    git中的代码,整个的流程就是上图显示的那样,代码可能会经历最多4个地方会被推送到远程大致流程:clone克隆远程文件到本地=>通过编辑器编辑本地的代码(即在工作区)=>pull拉下远程的代码,可能有人提交代码到同分支=>add添加到暂存区=>commit提交到本地仓库=>push推送到......
  • vue+elementui实现树形结构表格且合并同一个children的单元格
    1、实现效果2、结构代码(给table添加classname)3、通过设置css实现合并同一个children的单元格.nonRelationalDatabase{//去除横向边框::v-deep.el-table__row{  td{   border-bottom:none!important;  } }//......
  • Git生成ssh密钥及配置
    由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSHkey,在此之前,必须要生成SSHkey。第1步:创建SSHKey。在windows下查看[c盘->用户->自己的用户名->.ssh下是否有id_rsa、id_rsa.pub文件,如果没有需要手动生成。在开始菜单中打开git下的gitb......
  • 好用到飞起的新项目「GitHub 热点速览」
    虽然本周GitHub热榜都是一些熟悉的面孔,但还是有不少新开源的项目,比如受启发于StripeIDs的UUIDv7扩展typeid,相信有了它,数据标识问题就迎刃而解了。此外,还有刚开源就获得近2kstar的抠背景项目background-removal-js,一键就能去掉图片背景。还有一个非常有意思的IDE,它......
  • 如何把本地项目初始化到gitLab上去,干货分享!!
    说明:1.适用范围(高手请忽略)例如:你本地已经有一个项目了(或者别人发一个项目给你),但是你需要把这个项目托管到你的gitLab上去操作步骤:1.首先在你的gitLab上建一个空的工程目录(很简单,百度一下),建好之后看到应该是这个样子的,上面也有对应的使用说明,教你如何把本地项目上传文件到git......
  • 实现 GitLab CI/CD 自动化发布网站至本地IIS服务器
    下面列出我本次使用的环境:操作系统:Windows11项目版本:.NETCore6.0脚本执行环境:PowerShell5.1.22621.963Web服务器:IIS10.0Gitlab:git.local 基本步骤配置GitLabCI/CDRunner  首先,在本地或公司内网的机器上设置一个GitLabCI/CDRunner,该Runner将用于执行CI/......
  • Git常用命令
    Git常用命令gitinit在目录中创建新的Git仓库(初始化仓库)gitclone[url]拷贝Git远程仓库到本地gitadd.将文件提交到缓存区.表示所有文件gitcommit将暂存区的文件提交到本地仓库gitpush上传远程代码并合并gitstatus查看仓库当前的状态,显示有变更的文件......
  • 企业级GitLab搭建
    企业级GitLab搭建一、简介1.GitLab概述是一个利用RubyonRails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。RubyonRails是一个可以使你开发、部署、维护web应用程序变得简单的框架。GitLab拥有与Github类似的功能,能够浏......
  • Scrapy保存数据到多个数据库
    Scrapy保存数据到多个数据库目标网站:中国福利彩票网双色球往期数据阳光开奖(cwl.gov.cn) http://www.cwl.gov.cn/ygkj/wqkjgg/代码classMongoPipeline:defopen_spider(self,spider):self.client=pymongo.MongoClient()self.ssq=self.client.bjsxt.ssq......