将一个git仓库里的一部分文件转出作为一个独立的仓库并保留提交记录commit log

这两天在一个大项目里写了一些小功能,后来觉得这部分内容不必整合到大项目中去,于是就产生了这个不太常见的需求,一查居然还真可以。git这回让我惊喜。

需求
  1. 在一个大仓库里,如 bigProject.git 写东西,比如新建了一个A文件夹,里面是a项目,写了一大堆,但恰好不与此文件夹之外的相关。
  2. 想把A文件夹里的内容转移出去成为一个独立的仓库,但又不想失去所有的提交记录(commit log)
  3. 是否可行?

答案: 可行

方法:
找到一个别人的做法,我按照方法1顺利地成功了。
链接如下:

大笨重的git仓库拆分成灵活轻巧的模块小仓库

关键部分摘录如下,以防原作者删除博文。

# 这就是那个大仓库 big-project
$ git clone git@github.com:tom/big-project.git
$ cd big-project

# 把所有 `codes-eiyo` 目录下的相关提交整理为一个新的分支 eiyo
$ git subtree split -P codes-eiyo -b eiyo

# 另建一个新目录并初始化为 git 仓库
$ mkdir ../eiyo
$ cd ../eiyo
$ git init

# 拉取旧仓库的 eiyo 分支到当前的 master 分支
$ git pull ../big-project eiyo
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值