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

这篇具有很好参考价值的文章主要介绍了将仓库下某个模块复制到新仓库并保留提交记录(非子库)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

以下是具体操作步骤:

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

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

  1. 切换到dp分支,使用以下命令添加一个新的远程仓库:
git remote add dp_orign git@gitee.com: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
  1. 删除步骤2中的新远程仓库dp_orign
git branch -a
* master
  remotes/dp_orign/dp
  remotes/dp_orign/master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
git remote rm dp_orign

git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

这样就完成了将一个仓库中的某个模块复制到另一个仓库中,并且保留了提交记录的操作。文章来源地址https://www.toymoban.com/news/detail-438737.html

到了这里,关于将仓库下某个模块复制到新仓库并保留提交记录(非子库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • gitee创建新仓库并上传代码

    链接: gitee远程仓库 在对应位置输入账号和密码,新用户可自行创建 2.1 在页面右上角\\\"+\\\",选择创建仓库 2.2 输入仓库名称,其他勾选项可自行选择,在这里直接点击创建。 2.3 创建完成长这样 3.1 进去到需要上传代码的文件内 3.2 在文件夹内右键选择Git Bash Here 3.3 git命令提交代码

    2024年02月08日
    浏览(58)
  • gitee(码云)建立新仓库并推送项目代码步骤

    1.下载git工具并安装(推荐使用14-16版本,版本过高可能会导致项目安装依赖失败) 2.安装完成后 3.到码云内注册账号 4.注册完成后新建仓库 5.桌面右击打开git Bash Here 6.git clone 复制某个仓库内克隆下载按钮点一下会有个https地址,将本地与远程仓库建立连接 7.连接成功以后会

    2024年04月22日
    浏览(41)
  • Github创建一个新仓库,关联本地数据并上传文件的图文步骤

    查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 工作中,我们经常会使用github来承享别人的代码果实,同时我们也会把自己的成果分享给别人,互相帮助

    2024年02月05日
    浏览(80)
  • gitee上创建新仓库如何clone到本地,并初始化项目

    目录 一、克隆 方法一 方法二 二、初始化项目 构建基本框架 自动生成代码  由于github速度较慢,这里我们使用gitee。我们在gitee上面创建一个仓库,然后我们可以通过ideal直接克隆下来,仓库设置如下 接着使用ideal将项目克隆下来,首先复制项目的地址 打开ideal,选择文件

    2024年02月05日
    浏览(62)
  • 【Git】解决‘每次初始化一个新仓库时,都需要执行git config --global --add safe.directory命令‘

    这个命令是用来将一个安全目录添加到全局的 Git 配置中。但每次克隆一个仓库或者新建一个仓库,并且对该仓库进行操作时,都需要执行该命令,十分麻烦! 这是因为,Git 近期进行了版本升级,添加了新的目录安全限制。造成在进行git常规操作时无法发现.git文件。 方案一

    2024年04月08日
    浏览(55)
  • gitee仓库迁移至gitlab仓库简单方法,保留提交记录

    1、先将gitee上的项目git clone至本地; 2、在gitlab上创建空项目,创建完成后复制新建项目的url; 3、cd至项目内部,查看git remote是否是origin; 4、是origin则直接修改origin的url,url为刚才复制的新建项目的url; 5、查看是否已修改为新项目地址的url; 6、推送代码至新仓库; 结束

    2024年02月11日
    浏览(52)
  • git命令使用 将git仓库克隆到另一个仓库,并保留原来的提交记录

    君子拙于不知己,而信于知己。——司马迁   清屏:clear 查看当前面板的路径:pwd 查看当前面板的文件:ls 创建文件夹:mkdir 文件夹名 创建文件:touch 文件名 删除文件夹:rm -rf 文件夹名 删除文件:rm -f 文件名 移动文件/文件夹:mv 需移动文件/文件名 目标文件夹/(../上级)  

    2024年02月12日
    浏览(52)
  • 【GIT教程】清除git仓库中某个文件的提交记录

    【Git教程】如何清除git仓库的所有提交记录,成为一个新的干净仓库 最近把一些项目传到Github上面进行开源,配置文件中配置了用户名和密码等一些比较敏感的信息,为了避免暴露这些信息,需要将相关的提交记录给清楚掉。 以 application.yml 来举例说明 第一步:在本地将该

    2024年02月13日
    浏览(49)
  • 【Git】git push --mirror 迁移项目到其他代码仓库,且保留分支与提交记录。

    需要把云效代码仓库的某些项目,迁移到公司内部的代码仓库。且需要保留迁移项目的分支和提交记录。 百度各种方法,并不停本地测试,结合以往gitlab操作经验解决。 执行前需要,提前在其他代码仓库里新建好项目(New Project),得到Rename repository Path。 执行逻辑 1.根据远

    2024年02月12日
    浏览(53)
  • idea将某个分支的某些提交记录提交到另一分支

    (1) 切换到合并的目标分支 (2) 找到源分支和需要合并的源分支记录 (3)选中需要合并的记录后,点击 “Cherry-Pick”图标, (4)在目标分支中(当前就是目标分支),点击提交代码,完成合并

    2024年02月12日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包