git 在哪里存储拉取的默认用户信息?
Where does git store default user info for pulls?
请注意:我知道这个问题可能看起来类似于this one,也许还有其他问题,但我向你保证不是重复,因为我能够找出比其他问题更具体的问题,而且我相信我的具体问题需要 unique/distinct 答案。
Mac OSX 10.13.6 这里.
我是几个不同 git/GitHub 存储库的提交者。我已经使用一次 GitHub 用户(我们称之为“some.random.dev1.example.com
”或简称为 SRD1)对这些存储库进行了多次提交。我现在需要从不同的 GitHub 用户对同一个存储库进行一些提交,假设来自同一台机器的“some.random.dev2.example.com
”或 SRD2)。
所以我更新了 user.name
、user.email
和 user.username
字段 ~/.gitconfig
以匹配我的 SRD2 用户的字段。然后,为了更好地衡量,我在 OSX 钥匙串访问管理器中清除了 2 个不同的 github.com 键。
我还删除了两个与我的 SRD1 用户关联的旧 SSH 和 GPG 密钥,并用两个与我的 SRD2 用户关联的新密钥替换了它们。
我刚去拉取其中一个回购协议(拉取其他开发人员在过去几个月中所做的任何更改),我得到:
$ git pull
remote: Repository not found.
fatal: repository 'https://some.random.dev1.example.com@github.com/IdeaEvolver/cutter-platform-app.git/' not found
因此,当我在回购上执行 git pull
时,它默认(以某种方式)与我的 some.random.dev1.example.com
用户(不再有权访问回购)拉动。从现在开始,我只想使用我的 SRD2 用户。我如何覆盖这个默认值,这个默认值存储在哪里?
Git 将有关存储库的信息存储在回购的 .git/config
中。可以手动编辑,但最好使用git remote
等命令行工具。 git remote -v
将显示您的存储库使用的 URL。
in that file I see url = https://some.random.dev1.example.com@github.com/SomeExampleOrg/SomeRepo.git
I also removed two old SSH and GPG keys that were associated with my SRD1 user, and replaced them with two new ones associated with my SRD2 user.
由于您使用的是 HTTPS url,SSH 和 GPG 都没有任何影响。
So I updated my user.name, user.email and user.username fields in ~/.gitconfig to match those for my SRD2 user.
认证不使用user.name和user.email,它们仅用于提交。没有user.username。有关所有配置选项,请参阅 git-config
。
您的实际凭据是使用 credential helper 存储的,在 OS X 上表示钥匙串。
您已经在存储库 URL 中硬编码了您的用户名。更改它,使其只是 Github.
提供的 URL
git remote set-url origin https://github.com/SomeExampleOrg/SomeRepo.git
有关更多信息,请参阅 Github 的 Which remote URL should I use?。
Will that affect git history or muck with anything else git-related?
如果您使用相同的 URL,减去用户名,除了您的身份验证,它不会改变任何东西。它不会影响您的 Git 历史记录。
如果您使用不同的 URL 指向不同的存储库,那么是的,git pull
会尝试将您的本地分支与不同的远程分支合并。如果存储库不相关,它将拒绝拉取。
请注意:我知道这个问题可能看起来类似于this one,也许还有其他问题,但我向你保证不是重复,因为我能够找出比其他问题更具体的问题,而且我相信我的具体问题需要 unique/distinct 答案。
Mac OSX 10.13.6 这里.
我是几个不同 git/GitHub 存储库的提交者。我已经使用一次 GitHub 用户(我们称之为“some.random.dev1.example.com
”或简称为 SRD1)对这些存储库进行了多次提交。我现在需要从不同的 GitHub 用户对同一个存储库进行一些提交,假设来自同一台机器的“some.random.dev2.example.com
”或 SRD2)。
所以我更新了 user.name
、user.email
和 user.username
字段 ~/.gitconfig
以匹配我的 SRD2 用户的字段。然后,为了更好地衡量,我在 OSX 钥匙串访问管理器中清除了 2 个不同的 github.com 键。
我还删除了两个与我的 SRD1 用户关联的旧 SSH 和 GPG 密钥,并用两个与我的 SRD2 用户关联的新密钥替换了它们。
我刚去拉取其中一个回购协议(拉取其他开发人员在过去几个月中所做的任何更改),我得到:
$ git pull
remote: Repository not found.
fatal: repository 'https://some.random.dev1.example.com@github.com/IdeaEvolver/cutter-platform-app.git/' not found
因此,当我在回购上执行 git pull
时,它默认(以某种方式)与我的 some.random.dev1.example.com
用户(不再有权访问回购)拉动。从现在开始,我只想使用我的 SRD2 用户。我如何覆盖这个默认值,这个默认值存储在哪里?
Git 将有关存储库的信息存储在回购的 .git/config
中。可以手动编辑,但最好使用git remote
等命令行工具。 git remote -v
将显示您的存储库使用的 URL。
in that file I see url = https://some.random.dev1.example.com@github.com/SomeExampleOrg/SomeRepo.git
I also removed two old SSH and GPG keys that were associated with my SRD1 user, and replaced them with two new ones associated with my SRD2 user.
由于您使用的是 HTTPS url,SSH 和 GPG 都没有任何影响。
So I updated my user.name, user.email and user.username fields in ~/.gitconfig to match those for my SRD2 user.
认证不使用user.name和user.email,它们仅用于提交。没有user.username。有关所有配置选项,请参阅 git-config
。
您的实际凭据是使用 credential helper 存储的,在 OS X 上表示钥匙串。
您已经在存储库 URL 中硬编码了您的用户名。更改它,使其只是 Github.
提供的 URLgit remote set-url origin https://github.com/SomeExampleOrg/SomeRepo.git
有关更多信息,请参阅 Github 的 Which remote URL should I use?。
Will that affect git history or muck with anything else git-related?
如果您使用相同的 URL,减去用户名,除了您的身份验证,它不会改变任何东西。它不会影响您的 Git 历史记录。
如果您使用不同的 URL 指向不同的存储库,那么是的,git pull
会尝试将您的本地分支与不同的远程分支合并。如果存储库不相关,它将拒绝拉取。