详解git submodule HEAD detached 的问题_其它综合

来源:脚本之家  责任编辑:小易  

git 的 submodule 方式不会向仓库添加实际的的内容的,只会通过 .gitmodules 文件保留相应的子模块的哈希值。由于你要真正要用的代码处于一个子目录中,我的方案是你先把这个子目录提取成一个单独的仓库(可以使用 git-subtree.sh 这个脚本),然后再添加这个仓库为 submodule(或者直接使用 git-subtree.sh 把实际的代码集成到你的项目,这样别人克隆就不需要更新 submodule 了)。这样做的缺点就是每当上游有更新,就需要对 submodule 的仓库做相应更新。另外:git-subtree.sh 已经合并入 git 了,可能并不在 PATH 中,不能直接执行,不过应该在 git 的安装中的。另一个思路:建立 bundles 目录,添加原仓库为 submodule 到此,然后对需要的子目录做相对路径软链接,git 能够正确处理软链接。这可能是比较好的一个办法了,不需要额外维护同上游的同步www.zgxue.com防采集请勿采集本网。

在使用git submodule 的时候,常常会遇到 执行完以下操作后发现 子仓库的head 指针处于游离状态 git clone xxxxx.git git submodule update --init

通常在项目中会抽取部分公共模块移植到其它项目,git submodule可以不用文件复制的方式来很好得解决这个问题 在git仓库中建一个子目录 在该目录下用git add git@xxxxxx.g

然后切换到子仓库,查看当前分支的状态如下

1. 编辑.gitmodules,删除对应要删除的submodule的行. 2. 编辑.git/config,删除有对应要删除的submodule的行. 3. 删除命令: git rm --cached bundle/xxxx (PS:此处最后没有符

原因是之前同事在子仓库中修改并提交后,没有在 父仓库中更新子仓库的最新提交记录

ubmodule foreach --recursive ubmodule init ubmodule foreach --recursive ubmodule update 这样貌似可以一次搞定了.

正常情况下,修改子仓库的内容并在子仓库提交后会在父仓库执行 git diff会有如下输出

我的方案是你先把这个子目录提取成一个单独的仓库(可以使用 git-subtree.sh 这个脚本),然后再添加这个仓库为 submodule(或者直接使用 git-subtree.sh 把实际的代码集成到你的

解决git submodule head detached的方法:

.*/\1/g'` for name in $fn do rm -rf $name rm -rf './git/submodule/'$name git submodule init git submodule update done } 之后source .bashrc后在git的根目

重新建立submodule,加入时使用-b参数,使得母项目追踪子项目的指定branch(否则默认不追踪):

git push origin 分支名字 //提交更新至分支12,git status13 ,git revert14,git submodule init15,git submodule updatesvn 常用:svn add 文件路劲 //新增文件时使用 git revert 文件路劲

git submodule add -b <branch> <repository> [<submodule-path>]git submodule update --remote

我也用 submodule 来管理 vim 的插件,submodule 有个子命令 foreach ,可以这样用 $ git submodule foreach git pull origin master 这样就把所有的 submodule 都更新了,当然更

简单的一行命令递归修复所有子项目的detached head(其中默认都追踪子项目的master branch):

我想,大家都知道如何利用git的submodule功能,我个人也非常喜欢这种集成代码子集的方式9。 我想,大家都知道如何利用git的submodule功能,我个人也非常喜欢这种集成代码子

git submodule foreach -q --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'

参考

Why is my Git Submodule HEAD detached from master?

Git submodules best practices

到此这篇关于详解git submodule HEAD detached 的问题的文章就介绍到这了,更多相关git submodule HEAD detached内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

git submodule 式向仓库添加实际内容通 .gitmodules 文件保留相应模块哈希值 由于要真要用代码处于目录我案先目录提取单独仓库(使用 git-subtree.sh 脚本)再添加仓库 submodule(或者直接使用 git-subtree.sh 实际代码集项目别克隆需要更新 submodule )做缺点每游更新需要 submodule 仓库做相应更新 另外:git-subtree.sh 已经合并入 git 能并 PATH 能直接执行应该 git 安装 另思路: 建立 bundles 目录添加原仓库 submodule 需要目录做相路径软链接git 能够确处理软链接能比较办需要额外维护同游同步 ----------- 模块目录进行 已经 git-subree.sh split 操作候该仓库已经 orgin 完全同等于重新建立该 subdirectory 根仓库仓库象本并包含 origin 仓库所才效内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 详解git submodule update获取不到最新提交的代码
  • git submodule管理项目子模块的使用
  • 详解git submodule使用以及注意事项
  • git中submodule子模块的添加、使用和删除的示例代码
  • git submodule使用完整教程(小结)
  • win10安装anaconda+tensorflow2.0-cpu+pycharm的图文教程
  • jetpack开发中使用camerax完成拍照和拍视频功能
  • 24种编程语言的hello world程序
  • vscode添加git和svn的方法示例
  • hadoop 分布式存储系统 hdfs的实例详解
  • 微信报警 zabbix实现详解
  • rpc、rmi、soap的区别详解
  • 在windows系统上安装cygwin搭建swoole测试环境的图文教程
  • flyway的简单介绍及使用详解
  • fastjson到底做错了什么?为什么会被频繁爆出漏洞?(推荐)
  • 如何把一个工程中的某个目录添加为git submodule
  • 如何把一个工程中的某个目录添加为git submodule
  • 如何删除git submodule子项
  • 如何在git中删除submodule
  • 怎么用git维护由多个submodule组成的project
  • 如何在git中删除submodule
  • 怎么把 git 中有嵌套关系的 submodule 一次全部更新
  • 怎么把 git 中有嵌套关系的 submodule 一次全部更新
  • git总是出现untracked content怎么解决
  • svn和git常用指令
  • Git subtree 要不要使用
  • jinkins怎么集成git
  • git both modified 怎么解决
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页详解git submodule update获取不到最新提交的代码git submodule管理项目子模块的使用详解git submodule使用以及注意事项git中submodule子模块的添加、使用和删除的示例代码git submodule使用完整教程(小结)win10安装anaconda+tensorflow2.0-cpu+pycharm的图文教程jetpack开发中使用camerax完成拍照和拍视频功能24种编程语言的hello world程序vscode添加git和svn的方法示例hadoop 分布式存储系统 hdfs的实例详解微信报警 zabbix实现详解rpc、rmi、soap的区别详解在windows系统上安装cygwin搭建swoole测试环境的图文教程flyway的简单介绍及使用详解fastjson到底做错了什么?为什么会被频繁爆出漏洞?(推荐)最新idea2020注册码永久激活(激活intellij idea2020永久破解,亲测intellij idea激活码获取方法(i删除svn三种方法delsvn(windows+c/s和b/s两种架构的概念、区别和网址(url)支持的最大长度是多少intellij idea 2020最新注册码(亲5个linux平台程序员最爱的开发工url中斜杠/和反斜杠\的区别小结从chrome app看微信小程序的发展前景markdown语法备忘字符编码笔记 ascii,unicode和utf-8jetbrains mono字体安装方法(推荐)编译和解释的区别是什么几道和「黑洞照片」那种海量数据有关的算base64编码的深入认识与理解git checkout 命令使用详解hadoop-3.1.2完全分布式环境搭建过程图文
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved