git submodule
添加子仓库到老仓库
1 | git submodule add <gitUrl> <filePath> |
例如
1 | git submodule add -name <moduleName> <repo url> <filePath> |
初始化子仓库
1 | git submodule init && git submodule update |
批量操作子模块
git submodule foreach
1 | git submodule foreach git checkout master |
删除子模块
本地删除
git submodule deinit <submodule-name>
deinit 之后,只修改 $GIT_DIR/config file 文件。
本地仓库消失, git submodule update
/git submodule foreach
等不会生效。
.gitsubmodule 仍然记录子仓库信息,不会影响远程仓库,使用 git submodule init
可以还原子仓库。
我理解为类似于 git 的 untrack 文件,让本地不跟踪改
永久删除
git rm <submodule file path>
此时 .gitsubmodule 信息也被删除,但是如果 git revert
的话撤销 commit 的还是可以恢复。
如果不想恢复,可以手动去删除
.git/modules/<submodule name>
路径下的文件夹
手动删除的土方法
rm -rf
子模块目录 删除子模块目录及源码vi .gitmodules
删除项目目录下.gitmodules
文件中子模块相关条目vi .git/config
删除配置项中子模块相关条目rm .git/module/*
删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
子模块嵌套
需求:根仓库是个架子,子模块 1 不提交上远程仓库,仅在本地仓库维护。子模块中还有其他子模块 1.1,这时候可以
- 子模块 1 使用 git clone,sunmodule 直接维护在子模块 1 仓库。
- 忽略根仓库的 .gitmodules 文件
submodule 游离问题
父仓库记录了 submodule
提交时的 commit id
,如果你 pull 父仓库前 submodule
没有子仓库 commit id
对应的代码,子仓库就会游离无法 git push
,显示:
git submodule head detached
解决方案
建议
先把子仓库代码更到最新,再 git pull
父仓库,爸爸就能找到孩子,子仓库就不会游离了。
可以选择以下任意一个指令:
git submodule foreach git pull
git submodule update --remote
值得注意的是,git submodule update --remote
默认拉取 master
分支,如果要拉取 submodule
的其他分支,需要使用以下指令:
git config -f .gitmodules submodule.<subModuleName>.branch <branchName>
CommonJS 模块引用 node_modules 为什么不用路径
ps:先提交 submodule 再提交主 module,否则还需要提交一次主 module
spawn
Node 使用子进程执行命令行
AES 加密 Java 和 Node 不一致怎么解决?
检查密钥长度,是否为 16 位的,如果不是的话内部填充方法可能不一致。
css :only-child
只有一个子元素的时候使用
使用 Math.log 计算对数
Math.ceil(Math.log(1000) / Math.log(10))//3
UV 和 PV 是什么
为什么 1.toFixe() 报错,但是 (1).toFixed 不报错
如果不加括号,程序无法判断是你是浮点数还是引用属性(对象引用属性 a.b)
对于原始字面量的整型数字,使用原型链 Number 的方法时都需要使用 () 告诉程序你就要调用函数~
如何禁止反爬机制的无限断点
这个问题解决起来还是蛮简单的,问题解决只需要一句话:禁止断点。
而对应的操作是在Chrome控制台的Source Tab页点击Deactivate breakpoints按钮或者按下Ctrl + f8(下图)。