首页 > 其他分享 >将仓库下某个模块复制到新仓库并保留提交记录(非子库)

将仓库下某个模块复制到新仓库并保留提交记录(非子库)

时间:2023-05-11 13:56:55浏览次数:41  
标签:复制到 origin git 仓库 非子库 提交 dp 分支

在Git中,有时候我们需要将一个仓库中的某个模块复制到另一个仓库中,并且还需要保留提交记录。这个时候我们可以使用Git subtree命令来实现。
例如:将本地某个仓库中的design-pattern文件夹下的所有文件拿出来作为一个新仓库

以下是具体操作步骤:

  1. 进入旧仓库中,使用以下命令将需要复制的模块分离出来,创建一个新分支:
git subtree split --prefix=design-pattern -b dp

这个命令会在当前仓库中创建一个名为dp的新分支,并将design-pattern模块的提交记录复制到这个分支中。

  1. 切换到dp分支,使用以下命令添加一个新的远程仓库:
git remote add dp_orign [email protected]:forxiaoming/design-pattern.git

这个命令会将一个名为dp_orign的远程仓库添加到当前仓库中。

  1. 将dp分支推送到新的远程仓库中:
git push dp_orign dp

这个命令会将dp分支推送到dp_orign远程仓库中。

接下来只需要在新仓库中将 dp分支合并到主分支即可

  1. 进入新仓库中,使用以下命令拉取新的提交记录:
git pull
#From gitee.com:forxiaoming/design-pattern
# * [new branch]      dp         -> origin/dp

这个命令会拉取dp分支中的提交记录到新仓库中。

  1. 将本地分支与远程分支同步:
git fetch origin

这个命令会将远程分支的最新提交记录拉取到本地。

  1. 切换到dp分支:
git branch
# * master

git branch  -r
#  origin/HEAD -> origin/master
#  origin/dp
#  origin/master

git checkout dp
  1. 这时可以看到 dp 分支下有之前旧仓库推送过来的文件
ls
#README.md
# ...
  1. 切换回主分支:
git checkout master
  1. 将dp分支合并到主分支中:
git merge --allow-unrelated-histories dp

这个命令会将dp分支的提交记录合并到主分支中。

在使用 git merge 命令合并两个分支时,如果两个分支的提交记录没有共同的祖先,即它们的提交历史没有交集,那么 Git 会认为这两个分支是不相关的,不能直接合并。这时候会出现以下错误提示:

fatal: refusing to merge unrelated histories

为了在这种情况下也能够合并分支,需要使用 --allow-unrelated-histories 参数。这个参数的作用是允许合并两个没有共同祖先的分支,即使 Git 认为它们是不相关的。

  1. 推送到远程仓库:
git push
  1. 删除本地dp分支:
git branch -d dp
  1. 删除远程dp分支:
git push origin --delete dp

这样就完成了将一个仓库中的某个模块复制到另一个仓库中,并且保留了提交记录的操作。

标签:复制到,origin,git,仓库,非子库,提交,dp,分支
From: https://www.cnblogs.com/52liming/p/17390829.html

相关文章

  • Git 如何迁移仓库并保留 commit 记录?
    Git如何迁移仓库并保留 commit 记录一、作用把在A托管平台的仓库完全的迁移到B托管平台,保留commit历史记录。二、场景将Gitlab上的仓库迁移到GitHub将Coding上的仓库迁移到GitHub将Gitee上的仓库迁移到GitHub……迁移前后,保留commit历史记录,即在迁移后的......
  • 本地多张图片直接复制到富文本编辑器中
    ​ 自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器)中时,编辑器都无法自动上传图片。需要用户手动一张张上传Word图片。如果只有一张图片还能够接......
  • JFrog Artifactory 系列3 --- 仓库与配置
    一、概念1.承上启下JFrogArtifactory系列1---安装与配置JFrogArtifactory系列2---Https2.仓库种类(1)按逻辑结构划分从逻辑上讲,最常用的制品库类型有以下三种:a.LocalRepositories(本地仓库):用于搭建私有仓库,存储组织内部制品;b.RemoteRepositories(远程仓库......
  • 本地图文直接复制到富文本编辑器中
    ​ 当前功能基于PHP,其它语言流程大抵相同。大概流程:1.将docx文件上传到服务器中2.使用PHPoffice/PHPword实现将word转换为HTML3.将HTML代码返回并赋值到编辑器中 1编辑器配置修改1.1新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /*......
  • 本地图文直接复制到Web编辑器中
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@     page contentType="text/html;cha......
  • 本地图文直接复制到HTML编辑器中
    ​ 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。加入下面的代码://判断剪......
  • 本地图文直接复制到网页编辑器中
    ​ 自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器)中时,编辑器都无法自动上传图片。需要用户手动一张张上传Word图片。如果只有一张图片还能够接......
  • git仓库过渡,同时向两个仓库推送代码
    公司部门被大佬收购,产品项目迁移新公司仓库,过渡期间产品上线流程继续使用原公司的,新公司部署新系统后通过域名重定向逐渐将用户引流到新系统上完成切换,最后关闭原公司系统及上线流程。过渡期间新功能代码需要保证两边git仓库里一致,即执行gitpush命令时同时往两个仓库里推送代码......
  • Maven 仓库优先加载本地的仓库jar包配置,清理无法下载的jar
    Settings-Maven-Runner-VMOptions中添加-DarchetypeCatalog=internal,优先从本地仓库读取,添加-Dmaven.wagon.http.ssl.insecure=true-Dmaven.wagon.http.ssl.allowall=true,忽略证书检查https://www.jb51.net/article/276265.htm清理本地没下载完的https://www.jb51.......
  • 本地Word图文直接复制到富文本编辑器中
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的......