gpt4 book ai didi

git - 配置多个 git 帐户时更新子模块

转载 作者:太空狗 更新时间:2023-10-29 13:43:45 33 4
gpt4 key购买 nike

我有两个 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 key :

id_rsa.pub <= personal ssh key
id_rsa_work.pub <= work ssh key

~/.ssh/配置文件:

#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

但仍然无法在本地更新子模块。

最佳答案

为了防止意外将子模块的私有(private) URL 提交到存储库(这取决于您的 .ssh/config),您应该改为编辑.git/ssh

中的 url

编辑 .gitmodules 文件中的 URL 以使用 github-work 是一种方法。但是,由于这是项目的文件部分,因此可能会被错误提交。

而不是评论中提到的@Chronical。要仅更改特定 checkout 的本地设置,您应该改为更改 .git/config

中的 URL
url = github-work:/work_domain/work_submodule.git

通过在 .gitmodules 中更改它而不是在 .gitmodules 中更改它,您可以摆脱清理意外使用不正确 URL 的东西的额外步骤

请注意,如果您执行 git submodule sync,您在 .git/config 中编辑的 URL 将被 .gitmodules 中的那个覆盖/p>

关于git - 配置多个 git 帐户时更新子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875819/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com