git多个帐户和存储库问题

时间:2017-02-15 23:49:55

标签: git visual-studio github ssh version-control

我想在Visual Studio项目中使用git。我已经有一个工作正常的个人帐户。现在我的雇主给了我一个新帐户,视觉工作室仍然试图推送到我的个人帐户,并在发布和同步时给我错误。

所以我按照本教程:https://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574

  • 创建了新的ssh密钥
  • 为其创建了一个身份
  • 将ssh密钥添加到我的github帐户
  • 为ssh config添加了身份

现在有一些我不清楚的事情

我创建了两个原点+默认的原点 来源(默认) myorigin(未使用) georigin(路径:git @ github-ge:ge / geweb)

当我输入     $ git config --global -l 它给了我正确的(雇主' s)user.name和user.email

geweb 是我的新存储库的名称 我的存储库的网址是: https://github.com/ge/geweb.git

当我尝试推送georigin时,它说找不到存储库 当我尝试推动原产地说它 错误:src refspec master与any匹配。

另外,我没有在哪里提到我的第二个git帐户的用户名和密码

另外,我的git帐户中有2封电子邮件,配置中的user.email不是主要的。那可能是原因吗?

我对它的端到端工作方式感到很困惑。

无法推送后我试图从源解绑该项目并从我的项目文件夹中删除.git文件 但团队资源管理器仍然显示未同步的提交和更改

输出 git remote -v是:

  • myorigin git @ github-ge:ge:getWeb.git(fetch)
  • myorigin git @ github-ge:ge:geWeb.git(push)

4 个答案:

答案 0 :(得分:1)

  

git @ github-ge在git @ github-ge:ge / geweb

路径中的起源是什么?

origin是给予远程存储库的任意名称。它通常代表本地存储库从中克隆的存储库。

例如,如果您运行git clone git@github.com:jquery/jquery.git,那么最终会以origin指向该克隆的URI。

URI的git@github-ge部分代表服务器上的用户(user@server)。你可以read about Git's protocols including the SSH protocol here

对于大多数人来说,URI的那一部分意味着Git使用SSH而不是HTTPS来与远程通信。实际上,SSH需要SSH密钥并运行SSH代理,而HTTPS需要用户名/密码。

答案 1 :(得分:1)

假设您的私人帐户和回购邮件为https://github.com/my/repo.git,并且您要使用的第二个帐户和回购邮件是:https://github.com/ge/geweb.git。整个步骤如下:

  1. ssh-keygen -t rsa -C "second account email address"
  2. 重命名id_rsa的文件,例如Enter file in which to save the key (/c/Users /.ssh/id_rsa): /c/Users /.ssh/id_rsa_ge
  3. 在目录c:\Users \.ssh中将id-rsa_ge.pub的内容作为SSH密钥复制到第二个github帐户。
  4. touch /c/Users /.ssh/config
  5. 修改配置内容,如下所示:
  6. Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa

    Host github-ge HostName github.com User git IdentityFile ~/.ssh/id_rsa_ge

    1. git clone https://github.com/my/repo.git
    2. 克隆您的私人仓库
    3. git remote add geweb git@github-ge:ge/geweb.git
    4. git push geweb mastergit push geweb master -f

答案 2 :(得分:0)

因此,事实证明我在设置帐户时遇到了多个问题。

  1. 它选择了Shaun和Marina确定的错误来源
  2. 所以,我删除了错误的一个并添加了正确的一个(georign)

    1. 我已将自述文件添加到默认存储库,它给了我错误: 提示:更新被拒绝,因为您当前分支的提示落后 提示:它的远程对应物。整合远程更改(例如 提示:' git pull ...')再推一次。 提示:请参阅关于快进的说明'在' git push --help'详情。
    2. 所以我在推动之前尝试了拉动,结果我不得不 - 允许不相关的历史

      git pull georigin master --allow-unrelated-histories
      

      然后

      git push georigin master
      

      多数民众赞成! (唷)

答案 3 :(得分:0)

我设法通过从文件中删除Host *来解决此问题,检查$ yarn build 8:08:03 PM: yarn run v1.22.4 8:08:03 PM: $ react-scripts build 8:08:04 PM: Could not find a required file. 8:08:04 PM: Name: index.html 8:08:04 PM: Searched in: /opt/build/repo/public 8:08:04 PM: error Command failed with exit code 1. 8:08:04 PM: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 8:08:04 PM: ​ 8:08:04 PM: ┌─────────────────────────────┐ 8:08:04 PM: │ "build.command" failed │ 8:08:04 PM: └─────────────────────────────┘ 8:08:04 PM: ​ 8:08:04 PM: Error message 8:08:04 PM: Command failed with exit code 1: yarn build 8:08:04 PM: ​ 8:08:04 PM: Error location 8:08:04 PM: In Build comma 无效

~/.ssh/config

现在,检查一下可以正常工作的

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Host github.com-workaccount
  AddKeysToAgent yes
  UseKeychain yes
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github.com-workaccount

谢谢