今天遇到一个很怪的问题,我想把我的一个子模块切换到另一个上游,我按照网上的方法删除子模块然后新建后,这个子模块依旧跟踪着我先前的上游。自己摸索了一下,可能方法比较傻,不过是可行的,希望能给大家一些帮助。

  1. 使原先子模块不被版本控制(先把子模块从版本控制系统移除)
git rm --cached /path/to/files
  1. 删除子模块目录
rm -rf /path/to/files
  1. 修改 .gitmodules,移除这个 submodule
-[submodule "themes/next"]
- path = themes/next
- url = https://github.com/theme-next/hexo-theme-next.git
  1. 修改 .git/config 内容,把需要删除的 submodule 配置项删除
  2. 修改 .git/modules 文件夹内容,把你想要删除的子模块目录删除(这项十分重要,或者你知道怎么修改也可以修改,不然导致的后果就是你改过来的同名子模块依然跟踪着之前的分支,git pull 也没法拉取你在 .gitmosules 中新定义的上游地址)
  3. 后面再按照普通的方法添加子模块即可

一些子模块的操作可以参见Git Submodule 用法筆記

git彻底删除或变更子模块的更多相关文章

  1. Git仓库删除大文件

    Git仓库删除大文件 背景 当用Git久了,难免会手误或临时添加一些大文件到仓库中,即使以后添加进了.gitignore,甚至做了git rm,但是Git为了保证版本可回退,history pack里 ...

  2. git submodule删除多余模块

    rm -rf 子模块目录 删除子模块目录及源码 vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目 vi .git/config 删除配置项中子模块相关条目 rm ...

  3. 【git】删除某个文件的所有历史记录,批量删除远程分支

    删除git某个文件的所有历史记录 git的目的就是版本控制,记录每一个版本的变动.然而有的时候我们往往希望从版本库中彻底删除某个文件,不再显示在历史记录中.例如不小心上传了一堆错误的文件,或者不小心上 ...

  4. git中手动删除的文件如何在git中删除

    在日常开发中,我们可能或手动删除(delete键删除的)一些文件,然而我们本来应该是用git rm fileName命令删除的,但是现在我们手动删除了,那么要如何在git里面讲那些手动删除的文件删除呢 ...

  5. Git批量删除

    Git批量删除 git的改动都需要stage过程后才能commit.当git中有大量改动时就需要能够批量操作在方便.改动分三种: modify: 有文件修改 add: 有文件增加 rm: 有文件删除 ...

  6. GIT 查看 删除 添加远程库

    查看远程库 $ git remote -vorigin https://github.com/autoliuweijie/MachineLearning.git (fetch)origin https ...

  7. git远程删除分支但本地git branch -a仍能看到解决

    git远程删除分支但本地git branch -a仍能看到解决 在gitlab页面删除分支 但是本地能可以看到 $ git branch -a br_dev br_to_delete * master ...

  8. git clean 删除忽略文件 和 未被跟踪文件及文件夹

    git clean 删除忽略文件 和 未被跟踪文件及文件夹 概念 首先我们需要认清 忽略的文件 和 未被跟踪的文件 忽略的文件:.gitignore 中忽略的文件 未被跟踪的文件:没有被忽略,但是还没 ...

  9. 从git中删除 .idea 目录

    将.idea目录加入ignore清单: $ echo '.idea' >> .gitignore   从git中删除idea: $ git rm —cached -r .idea 3 将. ...

随机推荐

  1. delphi 二维数组的大小和元素个数问题

    type TComplex = record Real : Single; Imag : Single; end; TKArray=array [1..2048,1..2048] of TComple ...

  2. 微信JS-SDK分享功能的.Net实现代码

    JS-SDK接口是什么? 为了方便开发者实现微信内的网页(基于微信浏览器访问的网页)功能,比如拍照.选图.语音.位置等手机系统的能力,并方便开发者直接使用微信分享.扫一扫等微信特有的能力,微信推出了J ...

  3. 高通平台打开 dynamic debug方法【学习笔记】

    一.首先在内核的配置文件添加如下的配置: CONFIG_DEBUG_FS=y CONFIG_DYNAMIC_DEBUG=y 二.找到自己平台对应的 device/qcom/xxxx/init.targ ...

  4. scrapy 爬虫教程

    http://python.jobbole.com/87284/ 这篇教程不错,后面的参考链接很好 另外,注意xpath的坑,用chrome的网页调试工具会对xpath会自动优化,自己加上tbody, ...

  5. mybatis generatorConfig.xml生成配置文件及三种运行方式

    https://blog.csdn.net/gavin5033/article/details/83002335 一 ,cmd命令执行配置文件本人工作目录结构(图一) 在自己放配置文件的目录下新建ge ...

  6. [转]Git 代码撤销、回滚到任意版本(当误提代码到本地或master分支时)

    两种情况(场景) 情况一      代码还只在本地,未push到运程仓库,想把代码还原到上一次commit的代码,此时操作为代码撤销 解决方案: 1 git reset [--hard|soft|mi ...

  7. Gradle: 一个诡异的问题(ERROR: Failed to parse XML AndroidManifest.xml ParseError at [row,col]:[5,5] Message: expected start or end tag)

    今天同事说他下了一个老版本的AS项目死活编不过,我心想不就是一个项目么,编不过要么就是代码有问题,要么就是依赖库不完整这能有什么问题,于是自己在自己电脑试了下,结果自己也中招了: 乍一看这个错误,说是 ...

  8. 查看Linux系统的USB设备

    查看Linux系统的USB设备 lsusb (centos没有该命令) dmesg (内核日志会输出) 执行dmesg

  9. 【转】45个实用的JavaScript技巧、窍门和最佳实践

    原文:https://colobu.com/2014/09/23/45-Useful-JavaScript-Tips,-Tricks-and-Best-Practices/ 目录 [−] 列表 第一次 ...

  10. ISO/IEC 9899:2011 条款6.5.4——投射操作符

    6.5.4 投射操作符 语法 1.cast-expression: unary-expression (    type-name    )    cast-expression 约束 2.除非类型名 ...