Git - remote:找不到存储库

Mat*_*der 58 git github atlassian-sourcetree

我有SourceTree和本地工作副本.所有操作都运行良好,我可以通过SourceTree简单地获取,推送,拉取等.我只需要在SourceTree中进行强制推送.

我打开终端制作git push -f

remote: Repository not found.
fatal: repository 'https://github.com/MyRepo/project.git/' not found
Run Code Online (Sandbox Code Playgroud)

我不确定会出现什么问题.

Igo*_*kin 84

Add "Personal Access Token"

Since since 2021 Github supports PAT rather than name/password (read here how to create and use one) so we just add it into the remote origin.

On Windows

  1. Visit .git folder and open config file for editing. Eg. vim config.
  2. Change your URL from
    https://github.com/<username>/<repo_name>.git
    to
    https://[personal-access-token]@github.com/<username>/<repo_name>.git
    Where [personal-access-token] is the PAT hash you've created at github.
  3. Save the config file and now the push should work.

Shortcut:

git remote remove origin
git remote add origin https://[personal-access-token]@github.com/username/repo_name.git
Run Code Online (Sandbox Code Playgroud)

Update

When generating a token, choose No expiration if you want it to work for long time. 在此输入图像描述


Zee*_*ari 69

从系统中删除所有github.com凭据详细信息.

对于mac

从Keychain Access中删除github.com密码.

对于窗口

从Credential Manager中删除凭据.

  • 这是对的; 至少对于Mac。我从Keychain Access(一个应用程序)中删除了所有说“ github”的内容,然后在我尝试推送时提示我在命令行中输入凭据。 (3认同)
  • “ALL”表示全部。即使它说“网络” (3认同)
  • 呃呃,小心这个动作。我现在根本无法从命令行进行身份验证,即使是之前运行良好的存储库 (3认同)
  • 那么Linux呢? (3认同)
  • 你能分享我的ubuntu吗? (2认同)
  • 伙计们,这确实有效,因为钥匙串密码有时可以记住来自不同 github 帐户的密码,一旦你从钥匙串(mac)中删除它,第一次推送它会要求用户名和通行证,然后像魔术一样它会起作用并通行证将在钥匙串中更新,谢谢@Zeeshan (2认同)

小智 43

我也面临同样的问题

remote: Repository not found
fatal: repository 'https://github.com/MyRepo/project.git/' not found
Run Code Online (Sandbox Code Playgroud)

我卸载了git凭证管理器并重新安装它然后我可以轻松地拉动并推送到存储库.这是命令

$ git credential-manager uninstall

$ git credential-manager install
Run Code Online (Sandbox Code Playgroud)

  • git:'credential-manager'不是git命令。参见'git --help'。 (9认同)
  • 删除失败。U_U (6认同)
  • @filiphl 请参阅 Zeeshan Ansari 的回答。 (2认同)
  • 尽管$?这可能是“仅限Windows”的事情?该修复对我来说非常有效。我还检查了 git --help ,确实,凭证管理器没有列出,但这不是完整的列表。git help -a 确实将“凭据”列为命令。不管怎样,这个修复效果很好。 (2认同)

saw*_*ala 21

在 Mac 上

如果您尝试克隆 repo.... 那么可能会出现此问题,因为Keychain Access中的 github 帐户中没有 repo 。为了解决问题,请尝试使用帐户名称进行克隆,例如

git clone https://username@github.com/org/repo.git

代替

  • 用户名和你的 GitHub 用户名
  • org 与您的组织名称
  • 带有存储库名称的 repo


Emr*_*lat 19

因为您可能没有首先将远程git存储库识别到您的终端.

git remote set-url origin https://github.com/MyRepo/project.git
Run Code Online (Sandbox Code Playgroud)

然后,

git add .
git commit -m "force push"
git push origin master --force
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用SSH,则需要像这样设置-url:git@github.com:MyRepo/project.git (4认同)

小智 17

找到存储库时可能会出现此消息,但我们没有提交访问权限.措辞不好!

克隆了我老板为我创建的gitHub存储库后,收到了repo-not-found消息.我可以在本地克隆和提交,但无法向上游推送提交.存储库所有者没有给我写入权限.解决了对回购所有者的写入权限的请求.

  • 我就是这种情况。希望他们能有比这更好的错误消息。 (4认同)
  • 这实际上可能是故意的,因为 GitHub(其他网站也是如此)在尝试访问权限不足的存储库时也会返回 404。对于许多网站来说,这是一种额外的安全(或更确切地说是隐私)措施,可以防止爬虫或暴力攻击。 (4认同)
  • 在少数情况下,GitHub 会返回您没有权限而不是未授予权限的 repo not found 消息。 (3认同)
  • 对于使用个人访问令牌进行访问的其他人,请检查“设置 -&gt; 开发人员设置 -&gt; 个人访问令牌”并确认选中“write.packages”。这是我的问题。 (2认同)

Pb *_*ies 17

在 Windows 上:

  1. 转到 .git 文件夹
  2. 使用记事本或任何其他编辑器打开“配置”文件
  3. 将您的 URL 从 https://github.com/username/repo_name.git 更改为 https://username:password@github.com/username/repo_name.git

保存并推送代码,它将起作用。

  • [已于 2021 年 8 月 13 日删除对密码身份验证的支持](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/) (7认同)
  • 这也适用于 Linux! (2认同)
  • 谢谢,我也可以在 mac 上使用 (2认同)

Raz*_*lez 14

  • 如果您没有写访问权限而只有 read ,则可能会发生。

  • 如果它是私有存储库,您应该被添加合作者

  • 检查您的凭据是否正确

Git实际上不会说这些事情,它只会说用你的凭据没有找到repo。

祝你好运。


Muk*_*ria 13

请在下面找到有效的解决方案:

  1. 从开始菜单中打开控制面板。
  2. 选择用户帐户。
  3. 选择“凭据管理器”。
  4. 单击“管理Windows凭据”。
  5. 删除与Git或GitHub相关的所有凭证。
  6. 删除所有内容后,请尝试再次克隆。

在此处输入图片说明

  • 就我而言,我刚刚编辑了 Git 的凭据。将 Github 电子邮件设置为用户名和密码。它奏效了。 (2认同)

moh*_*sen 13

对于 Mac

打开 KeyChain Access 并在密码类别中找到您的 pssword 帐户(您可以在右上角的钥匙串访问页面上搜索它)

找到后,删除与 git 源代码管理相关的所有键。然后再试一次

在此处输入图片说明

  • 我尝试了几种解决方案,这是一个有帮助的解决方案!我有多个 git 帐户,所以看起来它正在尝试使用另一个帐户! (3认同)

Dhe*_*n M 13

您之前可能使用其他一些 GitHub 凭据登录。正是这就是发生此错误的原因。

通常,mac 会将您的 GitHub 凭据存储到钥匙串访问工具。您以前的 git 帐户详细信息在那里。因此它与您当前在其他帐户中的 git repo 不匹配。

解决方案简单明了,

  1. 转到 Mac 中的钥匙串访问。
  2. 在左侧的类别下,您可以找到所有项目。单击那个。
  3. 右侧顶部搜索“git”。
  4. 你会得到一些关于 Github 的项目。
  5. 删除所有这些项目。

就是这样,给你。

尝试再次推动。它会询问您 git 用户名和密码。您的新凭据将再次存储在钥匙串中,您的推送将完成。

欢呼!

如果您需要更多帮助,请回复我。

谢谢


Mod*_*odX 12

就我而言,上述解决方案均无效。

我通过remote.origin.urlhttps切换到ssh解决了这个问题:

验证git配置:

git config --list
Run Code Online (Sandbox Code Playgroud)

应该是这样的:

...
remote.origin.url=https://github.com/ORG/repo-name.git
...
Run Code Online (Sandbox Code Playgroud)

remote.origin.url使用ssh更新:

git remote set-url origin git@github.com:ORG/repo-name.git
Run Code Online (Sandbox Code Playgroud)


小智 9

在我们的例子中,这只是在 github 中给予写权限的一个例子。最初用户只有读取权限,并且出现此错误。


kia*_*ott 9

对于 Linux 用户:

git remote rm origin

git remote add origin https://GITHUB_USERNAME:PASSWORD@github.com/username/reponame.git

  • 这对我有用,除了我必须用“ACCESS_TOKEN”替换“PASSWORD”。您可以通过转到“Github &gt; 设置 &gt; 开发人员设置 &gt; 个人访问令牌 &gt; 生成新令牌”来生成“ACCESS_TOKEN”。为其命名并检查 REPO。 (9认同)

Ban*_*eil 9

我使用gh命令行工具(顺便说一句,这太棒了)

就我而言,我登录到了另一个 github 帐户。我只需要运行:

gh auth logout
gh auth login
Run Code Online (Sandbox Code Playgroud)

然后使用正确的帐户完成身份验证流程。


小智 8

禁用 GIT 凭证对我有帮助:

git config --global --unset credential.helper
Run Code Online (Sandbox Code Playgroud)


Thi*_*thi 7

这里的问题是Windows凭据管理器,请转到控制面板并搜索凭据管理器并删除与github有关的所有内容


Bha*_*ran 7

这是您的本地git无法将更改推送到远程服务器的问题。

git remote -v
Run Code Online (Sandbox Code Playgroud)

如果未正确设置,请尝试将您的遥控器设置为

git remote set-url origin https://username@github.com/MyRepo/project.git
Run Code Online (Sandbox Code Playgroud)

然后尝试使用

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

另外,您本地的git有可能具有不同的凭据,请也进行检查。

  • 我已经为此苦苦挣扎了一段时间。对我来说,诀窍是将我的用户名添加到网址中。然后提示我输入密码,然后它可以工作。 (2认同)

Bob*_*Ray 7

虽然之前的回复提供了各种解决方案,但我发现其中最简单的一种是将用户名添加到存储库的 URL 中

git remote add origin https://your-username@github.com/your-username/repository-name.git
Run Code Online (Sandbox Code Playgroud)

如果您已经定义了存储库(不添加用户名),您可以按如下方式更新它,

git remote set-url origin https://your-username@github.com/your-username/respository-name.git
Run Code Online (Sandbox Code Playgroud)

当推送到远程存储库时,git 不会从凭证助手中提取任何其他现有存储库的凭证,但会询问用户/存储库的特定密码。

作为一般说明,我会不惜一切代价避免使用您的帐户密码,而是使用个人访问令牌。登录github并选择,

Settings > Developer Settings > Personal Access Tokens > Generate new token
Run Code Online (Sandbox Code Playgroud)

只需确保在定义令牌范围时检查repo,并在要求输入密码时输入令牌(而不是您的个人密码)。

  • 就我而言,我有多个 github 用户名,因此在 URL 中使用 `your-username@github.com` 可以修复它。谢谢 (2认同)

Sye*_*Ali 6

我面临同样的问题并通过解决

git add .

git commit -m "message"

git remote set-url origin https://YOUR_GITHUB_USER@github.com/aceofwings/RotairERP.git
Run Code Online (Sandbox Code Playgroud)

然后

git pull
Run Code Online (Sandbox Code Playgroud)


har*_*oga 6

有时,您的电脑上会设置 ssh 凭据以与 github 存储库进行通信。当您设置新的存储库时:如果您以 https 格式添加源您的 git 凭证管理器将无法识别该存储库。

检查原始格式

git remote -v
Run Code Online (Sandbox Code Playgroud)

来源为 https 格式

origin  https://github.com/username/repo_name.git
Run Code Online (Sandbox Code Playgroud)

ssh 格式的来源

origin git@github.com:username/repo_name.git
Run Code Online (Sandbox Code Playgroud)

删除 https 格式的源

git remote remove origin
Run Code Online (Sandbox Code Playgroud)

以 ssh 格式添加源

git remote add origin git@github.com:username/repo_name.git
Run Code Online (Sandbox Code Playgroud)


Jul*_* S. 6

我尝试了所有方法,直到意识到存储库所有者只给了我READ 权限,因此 Git 会抛出“远程:未找到存储库”。


Rev*_*tha 5

所以您的网址目前如下所示

https://github.com/RevanthM/Log_Monitoring

它需要看起来像这样

https://RevanthM@github.com/RevanthM/Log_Monitoring

不同之处在于,我在 url 的开头添加了我的 github 用户名,后跟 @ 符号。


小智 5

在我的 repo 上设置 2FA 后,我遇到了同样的问题。如果您最近在您的帐户上设置了 2FA,我是这样做的:

生成个人访问令牌

转到GitHub 帐户上的设置 -> 开发人员设置 -> 个人访问令牌。生成新的个人访问令牌。确保检查所有与 repo-access 相关的权限。

删除所有 GitHub 身份验证配置(从 Mac 的钥匙串中)

您需要使用生成的个人访问令牌重新登录,因此请从您的笔记本电脑中清除所有以前的身份验证详细信息。对于 Mac,打开钥匙串并从登录名/密码部分删除所有与 github.com 相关的详细信息。

使用您的 GitHub 用户名和 PAT 作为密码登录到您的终端。

如果您在您的帐户上设置了 2FA,您将无法从终端使用您的 GitHub 密码进行身份验证。现在,尝试推送到 GitHub 存储库以触发身份验证需求。输入您的 GitHub 用户名的请求将在您的终端上弹出。输入您的用户名,并在提示输入密码时,使用生成的个人访问令牌作为密码。

这些确切的步骤为我解决了这个问题。


Ant*_*Kal 5

就我而言,由于用户错误,我无法克隆 github。

转到~/.gitconfig 然后尝试删除这行代码(只需删除它然后保存文件)。

[user]
    name = youruser
    email = youruser@domain.com
Run Code Online (Sandbox Code Playgroud)

或尝试在您的 cmd 或终端中使用一个班轮: git config --global --remove-section user

并尝试再次执行 git clone 。希望它会解决你的一天。><


Roh*_*ini 5

对此的解决方案 -

问题 -

$ git clone https://github.com/abc/def.git
Cloning into 'def'...
remote: Repository not found.
fatal: repository 'https://github.com/abc/def.git/' not found
Run Code Online (Sandbox Code Playgroud)

解决方案—— 卸载凭证管理器——

abc@DESKTOP-4B77L5B MINGW64 /c/xampp/htdocs
$ git credential-manager uninstall

abc@DESKTOP-4B77L5B MINGW64 /c/xampp/htdocs
$ git credential-manager install
Run Code Online (Sandbox Code Playgroud)

有用....


小智 5

执行git remote update对我有用。


Ahm*_*Ali 5

如果您使用访问密钥,请在创建访问密钥时授予适当的权限(我尝试了所有权限并且它有效)


Sho*_*lil 5

无需从凭证管理器中删除现有凭证

您所需要的只是在github.com之前添加您的 github用户名@到您的克隆命令中,如下所示:

git clone https://username@github.com/MyRepo/MyProject.git
Run Code Online (Sandbox Code Playgroud)

将会出现身份验证提示,您必须登录 github 帐户,身份验证将成功并且您的存储库将被克隆。

我被这个问题困扰了很长时间,直到了解了Git的配置系统后才得到确切的解决方案。

Git 用于将特定的 github 帐户凭据链接到存储库,这意味着每个存储库只能初始化一个 github/gitlab 帐户,以便将任何更改推送/拉取到存储库的远程源,这是完全有意义的。

另一个需要记住的警告是,在设置 git 配置时,您是在本地还是全局设置用户名和电子邮件(我更愿意根据存储库将我的用户名和电子邮件保留在本地,因为我必须在同一台机器,即一个个人帐户,另一个用于工作场所),或者您最终会提交一个意外的用户名,如果您坐在办公室沙发上做自由职业,这可能会暴露您的电子邮件。