有时候我们因项目需求,需要添加或者取消git 的子模块 此时需要如何操作呢?下面简单的说一下操作技巧。
git删除子模块
如果只需要将子模块代码放入主存储库,则只需删除子模块,然后将文件重新添加到主存储库中即可:
1 | git rm --cached submodule_path # delete reference to submodule HEAD (no trailing slash) |
git pull 碰到拒绝合并无关历史
1 | fatal: refusing to merge unrelated histories // 拒绝合并无关历史 |
解决办法
在拉取时使用以下命令:
1 | git pull origin master --allow-unrelated-histories |
对此,git 的 官方文档 是这样描述的:
By default, git merge command refuses to merge histories that do not share a common ancestor. This option can be used to override this safety when merging histories of two projects that started their lives independently. As that is a very rare occasion, no configuration variable to enable this by default exists and will not be added.
默认情况下,git合并命令拒绝合并没有共同祖先的历史。当两个项目的历史独立地开始时,这个选项可以被用来覆盖这个安全。由于这是一个非常少见的情况,因此没有默认存在的配置变量,也不会添加。(有道翻译)
关SSL_ERROR_SYSCALL in connection to github.com:443错误的两种解决方案
错误来源
使用使用hexo部署博客是,遇到以下错误:
1 | fatal: unable to access 'https://github.com/silenceboychen/silenceboychen.github.io.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 |
两种解决方案:
方案一
取消http代理:
1 | $ git config --global --unset http.proxy |
设置env GIT_SSL_NO_VERIFY
为true
然后再次部署:
1 | $ env GIT_SSL_NO_VERIFY=true hexo d |
问题解决。
方案二
在hexo项目的根目录下的_config.yml文件中把仓库链接地址由https修改为ssh的地址。
--- 本文结束 The End ---