我有两个 git 身份,一个是个人身份,另一个是我的雇主。
我的工作项目使用了一个子模块,虽然我可以很好地克隆主仓库,但我无法更新子模块。我需要配置什么才能使子模块也可以在本地更新而不会出现以下错误?
Fetching origin
From github.com:/work_domain/work_submodule
* branch HEAD -> FETCH_HEAD
error: pathspec 'master' did not match any file(s) known to git.
我的 ~/.ssh 目录中有 2 组 id_rsa 键:
id_rsa.pub <= personal ssh key
id_rsa_work.pub <= work ssh key
~/.ssh/config 文件:
#work acccount
Host github-work
HostName github.com
User git (corrected with info from answers)
IdentityFile ~/.ssh/ida_rsa_work
#personal account
Host github-personal
HostName github.com
User git
Identity ~/.ssh/ida_rsa
当我最初成功克隆我的工作存储库时,我使用了调整后的主机映射:
git clone git@github-work:work_domain/repo_name.git
而不是我通常在工作时使用的:
git clone git@github.com:work_domain/repo_name.git
在工作项目 repo 中,.gitmodules 文件当然有官方映射:
[submodule "work_submodule"]
path = work_submodule
url = git@github.com:/work_domain/work_submodule.git
根据下面的建议,我将 .gitmodules 属性更新为:
[submodule "work_submodule"]
path = work_submodule
url = git@github-work:/work_domain/work_submodule.git
但仍然无法在本地更新子模块。