当前位置: 首页 > news >正文

网站建设企业网银e路通南通网站

网站建设企业网银e路通,南通网站,2021最新新闻热点事件,asp.net企业网站设计【git】subtree拆分大的git库到多个独立git库 一、拆分一个子目录为独立仓库 # 这就是那个大仓库 big-project git clone gitgithub.com:tom/big-project.git cd big-project# 把所有 eiyo 目录下的相关提交整理为一个新的分支 eiyo_code git subtree split -P eiyo -b eiyo_…

【git】subtree拆分大的git库到多个独立git库

一、拆分一个子目录为独立仓库

# 这就是那个大仓库 big-project
git clone git@github.com:tom/big-project.git
cd big-project# 把所有 `eiyo` 目录下的相关提交整理为一个新的分支 eiyo_code
git subtree split -P eiyo -b eiyo_code# 另建一个新目录并初始化为 git 仓库
mkdir ../eiyo_code
cd ../eiyo_code
git init# 拉取旧仓库的 eiyo 分支到当前的 master 分支
git pull ../big-project eiyo_code

二、推送给新的远端仓库

# GitHub 新建一个空仓库(无README.md  .gitignore LICENSE )  git://github.com:tom/eiyo_code.gitgit remote add origin git://github.com:tom/eiyo_code.git
git push origin -u master # -u 或 --set-upstream 选项用于将本地分支与远程分支关联起来

三、清除一个子目录下所有内容和记录

这个还是要用万能的 filter-branch:

# 还是那个大仓库 big-project
git clone git@github.com:tom/big-project.git
cd big-project# 清理 `master` 分支上所有跟 `eiyo` 目录有关的痕迹
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch eiyo" --prune-empty master## 推送清理之后的数据
git push --force

至此,就将一部分eiyo 代码 分割成一个单独的仓库 并且保留日志。接下来科普一下 git subtree


四、git subtree 合并

git subtree:合并策略,通过git subtree命令能将依赖库某分支合并到主项目的分支中,在开发过程中,只需对主项目分支进行统一管理。

创建合并subtree add命令

命令如下:

git subtree add -P <prefix> <commit>
git subtree add -P <prefix> <repository> <ref>

两步走

(一)先fetch库再subtree add合并
  1. 先将依赖库fetch到本地仓库中
// 创建lib的远程版本库: 
git init --bare lib-rep
#-f:远端库添加后立即执行fetch操作
git remote add -f librepo ../lib-rep
  1. 通过git subtree命令将依赖库合并到主项目中
git subtree add -P lib librepo master  
(二)squash合并法

--squash: 适用于add/pull/merge子命令。先合并引用库的更新记录,将合并结果并到主项目中。

git subtree add --prefix=themes/jacman --squash https://it-boyer@github.com/it-boyer/jacman.git master   

五、subtree其他命令

git subtree支持创建(add)之外,还支持更新(pull),推送(push),合并(merge),抽离(split)以下命令:

git subtree pull -P <prefix> <repository> <ref>
git subtree push -P <prefix> <repository> <ref>
git subtree merge -P <prefix> <commit>
git subtree split -P <prefix> [OPTIONS] [<commit>]

(一)从子树库中拉取最新代码:

git subtree pull --prefix=themes/jacman --squash https://it-boyer@github.com/it-boyer/jacman.git master

(二)将自己的代码发布到子树库:

git subtree push --prefix=themes/jacman --squash https://it-boyer@github.com/it-boyer/jacman.git master

(三)相关参数:

q | --quiet
-d | --debug
-P <prefix> | --prefix=<prefix>      引用库对应的本地目录
-m <message> | --message=<message>   适用于add/pull/merge子命令。设置产生的合并提交的说明文本
--squash                             适用于add/pull/merge子命令。先合并引用库的更新记录,将合并结果并到主项目中。
使用此选项时,subtree add/pull会产生两个提交版本:一个是子项目的历史记录,一个是Merge操作。好处是可以让主项目历史记录很规整,缺点是子项目更新时常常需要解决冲突。一个更好的解决方案是:单独建一个分支进行--no-squash的subtree更新,然后再--squash合并到主分支。每次在此分支做操作前都需要先把主分支合并进来。参考:http://www.fwolf.com/blog/post/246

(四)split子命令选项:

--annotate=<annotation>              创建合成历史时有可能形成内容不同但提交信息完全相同的提交版本,使用这个选项在每个提交消息前加上此前缀用来区分。
-b <branch> | --branch=<branch>      创建合成的提交历史时,创建此参数指定的新分支包含生成的合成历史。<branch>必须是还不存在的。
--onto=<onto>
--rejoin
--ignore-joins

(五)使用sourcetree管理

  1. 配置 subtree 菜单:Repository -> Add/Link subtree…(添加/链接子树…) 在左边栏的SUBTREES(子树)中显示:

  2. 拉取依赖库的最新代码 在右边栏右击已存在的subtree,并选择 pull subtree…菜单项: 第二步的功能代码如下:

git -c subtree pull -P themes/.jacman --squash https://it-boyer@github.com/it-boyer/jacman.git master
http://www.dtcms.com/a/505409.html

相关文章:

  • 个人信息网站建设方案书框架栏目公司推广做哪个网站
  • 珠海公司网站建设无锡网站建设要多少钱
  • 上海史特网站建设移动端网站开发流程
  • 企业网站内容的制作对勾网机械加工订单
  • 网站登录系统制作金山软件有哪些产品
  • 大兴安岭网站建设兼职wordpress仿微博发文插件
  • python 做网站开发wordpress 更改目录权限
  • 宁波百度网站建设徐州网约车公司哪家好
  • 网站推广专员面试织梦企业模板去一品资源网
  • com网站建设品质最好的购物平台
  • 利用网站建设平台提供常州网站推广
  • 企业解决方案网站ui设计就业方向
  • 池州网站建设全包电脑网站
  • 建设银行网站网址是什么上海行业网站建设
  • 长沙手机网站建设哪些网页版微信网址
  • 南京营销网站建设大连门户网站建设
  • 公司网站别人做的怎么签合同大理网站建设滇icp备
  • 主机开通成功网站正在建设中网站开发证
  • 百度网站制作联系方式搜索排名竞价
  • 商城网站建设清单医疗设计网站
  • ASP4644S2B抗辐照性能的地面试验与在轨验证
  • 忻州做网站公司沃尔玛超市网上购物app下载
  • 超低价网站维护网站托管宝马itms做课网站
  • 高端 网站建设重庆做网站公司贴吧
  • 网站管理机制建设情况株洲网站建设和制作
  • 购物网站策划建设方案北京网页
  • 网站建设要什么证件自己做短视频网站
  • 深圳网站优化课程哪里学网站制作 番禺
  • 网站降权不收录如何知道网站流量
  • 福建省建设执业资格中心网站代理合同