git
和github
我遇到了一个非常奇怪的问题。当我尝试推动时,我得到了:
git push -u origin master
ERROR: Repository not found.
fatal: The remote end hung up unexpectedly
我添加了遥控器:
git remote add origin git@github.com:account-name/repo-name.git
有什么想法吗?
答案 0 :(得分:410)
检查您是否具有读写权限。
Git错误消息具有误导性。我有一个类似的问题。我被添加到现有项目中。我克隆了它并进行了一次局部改变。我去推送并收到ERROR: Repository not found.
错误消息。
将我加入项目的人给了我对存储库的只读访问权限。由他们改变,我能够推动。
答案 1 :(得分:104)
我遇到了同样的问题,我通过在repo url中包含我的用户名和密码解决了这个问题:
git clone https://myusername:mypassword@github.com/path_to/myRepo.git
答案 2 :(得分:58)
我得到了同样的错误
ERROR: Repository not found.
fatal: The remote end hung up unexpectedly
我在Github上创建了存储库并在本地克隆了它。
我可以通过打开.git / config并删除[remote "origin"]
部分来解决。
[remote "origin"]
url = git@github.com:alexagui/my_project.git
fetch = +refs/heads/*:refs/remotes/origin/*
然后我跑了以下(再次)
git remote add origin git@github.com:alexagui/my_project.git
git push -u origin master
这次我能够推送到存储库。
答案 3 :(得分:34)
我遇到了同样的问题,私人回购。
执行以下操作:
删除远程源
dict
重新添加原点但使用您的用户名和密码以及此pvt repo的写入权限
git remote rm origin
答案 4 :(得分:23)
我收到了这个错误(但之前正在工作)。我的问题是缺少与Github帐户绑定的ssh密钥。您可以使用ssh-add -l
检查当前的ssh密钥。
如果您的密钥丢失,可以使用
添加ssh-add ~/.ssh/your_key
答案 5 :(得分:21)
我有类似的问题。不正确的凭据缓存在OS X的密钥链中。
退房:https://help.github.com/articles/updating-credentials-from-the-osx-keychain
答案 6 :(得分:18)
答案 7 :(得分:18)
git remote rm origin
git remote add origin <remote url>
答案 8 :(得分:9)
我正在使用Mac ,但我很难找到解决方案。 我的远程地址是正确的,并且如上所述,这是凭据问题。 显然,过去我在计算机上使用了另一个Git帐户,而Mac的Keychain记住了先前帐户的凭据,因此我确实没有被授权进行推送。
如何解决? 在Mac上打开钥匙串访问,选择“所有项目”类别,然后搜索git。 删除找到的所有结果。
现在转到终端并尝试再次推送。终端将询问用户名和密码。输入新的相关凭证就可以了!
希望它会帮助某人。我挣扎了几个小时。
答案 9 :(得分:7)
这对我有用:
<强> 1。遥控器
$ git remote rm origin
$ git remote add origin git@github.com:<USER>/<REPO>.git
如果您的SSH密钥已在另一个github代理上使用,则可以生成一个新密钥。
<强> 2。生成新的SSH密钥
$ ssh-keygen -t rsa -b 4096 -C "web@github.com"
第3。在SSH代理级别添加密钥
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa_github
<强> 4。将新密钥添加到Github仓库。
答案 10 :(得分:7)
这解决了我的问题。
git pull https://myusername:mypassword@github.com/path_to/myRepo.git
答案 11 :(得分:7)
如果您属于Github中的一个组,请检查您是否具有“写入权限”。
答案 12 :(得分:5)
如果有人在github.com上遇到此问题,请检查您是否在回购所有者允许的情况下接受了邀请。在您接受邀请之前,回购将对您不可见。所以你得到ERROR: Repository not found.
答案 13 :(得分:5)
对于我未在此处提及的某些人来说,可能显而易见的一个问题是,您可以使用ssh密钥访问,但是您尝试通过https将本地存储库连接到远程。
如果是这种情况,那么以下命令应该为您解决问题:
$ git remote -v
origin https://github.com/private-repo.git (fetch)
origin https://github.com/private-repo.git (push)
$ git remote rm origin
$ git remote add origin git@github.com:private-repo.git
$ git remote -v
origin git@github.com:private-repo.git (fetch)
origin git@github.com:private-repo.git (push)
请注意,上述工作假定:
您当前的遥控器名为
origin
并且您已经拥有了 生成的ssh密钥与您的github帐户相关联您已经有一个与您的github帐户关联的ssh密钥(并在本地连接)
- 醇>
您在github上为此repo的设置设置了正确的权限(读/写)。
答案 14 :(得分:4)
remote: Repository not found.
可能是来自github的令人沮丧的误导性错误消息,当尝试推送到您没有写许可权的HTTPS远程服务器时。
尝试到同一存储库的SSH远程会显示不同的响应:
% git remote add ssh git@github.com:our-organisation/some-repository.git
% git fetch ssh
From github.com:our-organisation/some-repository
* [new branch] MO_Adding_ECS_configs -> ssh/MO_Adding_ECS_configs
* [new branch] update_gems -> ssh/update_gems
% git push ssh
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
“正确的访问权限?”
好吧你为什么不这么说?
在这一点上值得注意的是,在这种情况下,SSH失败模式 稍好,我通过SSH使用HTTPS远程服务器,因为 GitHub recommend HTTPS over SSH。
我知道GitHub使用“未找到”,在某些情况下它的意思是“禁止” 防止无意中发现私人存在的情况 资料库。
需要身份验证的请求将返回
404 Not Found
,而不是403 Forbidden
,在某些地方。这是为了防止意外泄漏 私有存储库以供未经授权的用户使用。
这是网络上相当普遍的一种做法,实际上它的定义是:
404(未找到)状态代码指示原始服务器未找到 目标资源或的当前表示不愿意 公开存在。
-6.5.4. 404 Not Found, RFC 7231 HTTP/1.1 Semantics and Content(重点是我)
对我来说毫无意义的是当我使用 credential helper 和我可以访问该存储库(已成功克隆和获取 它),因为缺少,GitHub会选择向我隐瞒它的存在 写入权限。
使用网络检查https://github.com/our-organisation/some-repository/ 浏览器确认我没有对该存储库的写权限。我们的 团队的GitHub管理员能够在短时间内授予我的团队写访问权限 时间,我得以将分支推高。
答案 15 :(得分:4)
答案 16 :(得分:4)
以下为我解决了这个问题。
首先,我使用此命令来确定所使用的github帐户是什么:
ssh -T git@github.com
这给了我一个这样的答案:
Hi <github_account_name>! You've successfully authenticated, but GitHub does not provide shell access. I just had to give the access to fix the problem.
然后我明白答案(github_account_name)中描述的Github用户在我试图提取的Github存储库上没有被授权。
答案 17 :(得分:3)
我遇到了同样的问题。请尝试以下方法:
1.修改Mac中的Keychain Access以获取git凭据为我解决了这个问题。
2.重置原始URL
git remote rm origin
git remote add origin git@github.com:account-name/repo-name.git
答案 18 :(得分:3)
我在一个MAC上遇到了同样的问题,试图从我先前连接的私人仓库中撤出。
我通过在回购网址中添加用户名来解决了该问题:
git remote set-url origin https://<YOUR_USER_NAME_HERE>@github.com/<YOUR_USER_NAME_HERE>/<REPO>.git
那我就可以从仓库中撤出。
对于要克隆的新存储库:
git clone https://<YOUR_USER_NAME_HERE>@github.com/<YOUR_USER_NAME_HERE>/<REPO>.git
它会提示您输入该帐户的密码,之后您可以登录。
答案 19 :(得分:3)
我可以解释一下我是如何陷入类似情况的,然后将列出我为解决此问题而采取的步骤。
我正在使用
Windows 10,
git:git版本2.27.0.windows.1。
我已经设置了git并且正在进行git push活动。 Windows Credential Manager存储用户名和密码,因此您不必在每次git远程活动中都输入用户名和密码。
当我添加另一个github帐户并使用--local git设置时遇到此问题。几天后,我遇到未找到存储库的问题,经调查发现:
因此,如果您使用两个git帐户,则需要使用(以git bash作为管理员)
git config --edit --system
并删除
helper = manager
行,这样它就不再注册为凭证帮助器。但每次进行任何远程活动时,它都会询问您登录详细信息。
How do I disable Git Credential Manager for Windows?。
要检查远程来源,请查看用户详细信息
git config --list --show-origin
答案 20 :(得分:3)
为了解决这个问题(在 Linux 上),我只需要运行这个:
git config --global --unset credential.helper
答案 21 :(得分:3)
更改.git / config文件的内容有助于Alex如上所述。我遇到了同样的问题,我认为这是因为我更改了我的Github用户名。无法使用更改更新本地文件。因此,每当您更改用户名时,您可能会考虑运行
git remote add origin your_ssh_link_from_github
我希望这会有所帮助;)
答案 22 :(得分:2)
我遇到了这个问题,并意识到我使用的是另一个帐户。以原始用户登录时解决问题。
答案 23 :(得分:2)
我的一个Github存储库遇到了同样的问题。
使用
SSH
代替HTTPS
,然后push/pull
开始正常工作。
答案 24 :(得分:2)
如果使用私有存储库检查连接用户,则必须具有使用存储库的权限。
答案 25 :(得分:2)
如果您使用https
从github克隆但使用ssh
进行推送,则也会出现此错误。
要解决此问题,请打开.git/config
并替换:
url = https://github.com/company/project.git
使用
url = git@github.com:company/project.git
而且您应该能够在没有警告的情况下进行推送...
答案 26 :(得分:2)
如果您包含您的用户名和回购名称,我们可以合理地帮助您,目前我们没有理由认为回购确实存在。
此外,如果回购是私有的而您无法访问它,则github会返回“不存在”以避免泄露私有回购的存在。
编辑:如果你无法克隆它,因为它说它不存在而且它是私有的,那是因为你没有发送身份验证。确保您的公钥已添加到密钥环中,或暂时使用HTTP基本身份验证。
答案 27 :(得分:2)
通常会发生这种情况,因为该项目是私有的,您无权编写它。我有几次同样的“问题”,正是因为这个原因。 如果该项目是您的,只需通过以下链接创建一个私钥和一个公钥:https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent 并将它们添加到 gitHub 上的“SSH 和密钥”部分,然后您就可以推送到存储库。另一方面,如果项目不是您的,请要求所有者授予您权利。
答案 28 :(得分:1)
我遇到了同样的问题,并尝试了许多方法,但是最后,我知道我没有足够的权限来推动或拉动此存储库,还有另一种方法来检查您是否具有权限或不是,您无法在该存储库中看到设置选项,并且如果您具有权限,那么您将能够看到设置选项
谢谢!这就是我观察到的
答案 29 :(得分:1)
我(以及其他许多人)自 2021 年 5 月以来就遇到了这个问题。 actions/checkout@v2 中的某些内容似乎发生了变化(GitHub 问题:https://github.com/actions/checkout/issues/254)
我通过使用此步骤更改运行程序向存储库进行身份验证的方式来解决此问题。
- name: Bump version
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |
npm run release
git remote rm origin
git remote add origin https://${{github.actor}}:${{secrets.GITHUB_TOKEN}}@github.com/project/repo.git
git remote -v # for debug only
git show-ref # for debug only
git push --follow-tags origin HEAD:master
您需要做的就是更改 repo url。用户名和密码将在运行时由 GitHub 运行程序替换。这适用于 actions/checkout@v1
和 actions/checkout@v2
(尚未测试其他)。
您在网上找到的许多代码段也已经带有权限限制,这将阻止您返回存储库
permissions:
packages: write
contents: read
如果您需要推送标签或提交发行说明和包碰撞,请确保删除此内容或授予您的操作内容:写入权限。
答案 30 :(得分:1)
第 1 步:
从 HTTPS 复制链接
第 2 步:
在本地仓库做
git remote rm origin
第 3 步:
在复制的 url 中用 username.password@github.com 替换 github.com
第 4 步:
git remote add origin url
答案 31 :(得分:1)
我遇到了同样的问题。我的问题是误解我必须首先在github上创建空的repo然后推送它。卫生署!其中包括没有意识到的人。
答案 32 :(得分:1)
转到你的项目文件夹,然后搜索.git文件夹,然后用记事本打开配置文件并检查你的链接是否为:[remote“origin”]下的github repo,如果它不同于repo在你的github然后只需编辑它,或在配置文件中打开一个名为
的新仓库答案 33 :(得分:1)
以下是如何解决我的问题
#check current github account
ssh -T git@github.com
#ensure the correct ssh key used with github
ssh-agent -s
ssh-add ~/.ssh/YOUR-GITHUB-KEY
#re-add the origin
git remote add origin git@github.com:YOUR-USER/YOUR-REPO.GIT
git push -u origin master
答案 34 :(得分:1)
遇到了同样的问题。一切都运作良好多年,然后突然出现这个错误。
问题是我在用户的github SSH密钥(我总是用来访问有问题的repo之前)之前为我的SSH代理添加了另一个repo的部署密钥。 SSH代理首先试用了另一个repo的部署密钥,GitHub因为一些完全无法解释的原因而说
ERROR: Repository not found.
一旦我从SSH代理中删除了部署密钥,一切都恢复正常。
答案 35 :(得分:1)
我的解决方案可能对你们中的一些人有用。
将macbook的操作系统更新为Yosemite后,我遇到了同样的错误。我的问题通过重新创建我的ssh密钥得到修复。您可以按照此页面的第2步执行此操作:https://help.github.com/articles/generating-ssh-keys/
答案 36 :(得分:1)
我需要杀死凭证 - 帮助程序进程(多个),并在再次提供凭据后解决了问题。
killall git-credential-cache--daemon
答案 37 :(得分:0)
如果没有对该存储库的写访问权限,则不需要它。按照these instructions创建一个fork - 它是您自己的存储库克隆,您可以自由修改。
创建fork后,您可以将该repo克隆到您的计算机上。
git clone git@github.com:<your-git-handle>/<repository>.git
// It will be cloned to your machine where you run the command
// under a <repository> folder that it will create.
签出新分支并进行更改。
git checkout -b my-new-feature
要将更改提交到原始存储库,您需要确保将其更改为
/* make changes */
git commit -am "New Feature: Made a new feature!"
git push origin my-new-feature
要将这些更改添加到您分叉的原始存储库中,可以按照these instructions提交Pull请求。基本上是一个Pull Request,您要求具有存储库写入权限的用户下拉您所做的更改。可以把它想象成“我要求你将我的更改记录到你的回购中。”
注意:您的fork不会与原始存储库中发生的所有更改保持同步。你必须定期降低这些变化 - 但这很容易。
创建分支后,您可以链接到您已分叉的仓库,以便您可以提取变更并保持最新状态。
git remote add upstream git@github.com:<git-user-handle>/<repository>.git
完成后,与原始仓库所做的更改保持同步非常简单。
git checkout master // checkout your local master
git pull upstream master // fetch changes from the master branch of the repo you forked from.. which is linked to your fork under the alias "upstream" (common naming convention)
git push origin master // push the pulled changes onto your local master
git checkout -b new-branch // create a new branch and start making changes
答案 38 :(得分:0)
将ubuntu更新为下一个版本
后,我遇到了同样的错误我刚刚在github帐户上删除了我的sshkey,然后重新为该帐户添加了一个sshkey。
答案 39 :(得分:0)
我得到了同样的错误因为我改变了我的github用户名,然后我这样做:
git remote -v
然后:
git remote set-url newname newurl
git push -u origin master
这次我能够推送到存储库。 我希望这会有所帮助。
答案 40 :(得分:0)
首先在命令行上创建一个新的存储库,名称为Ademo.git
在命令行上创建一个新存储库
触摸README.md git init git add README.md git commit -m“first commit” git remote add origin https://github.com/your_name/Ademo.git git push -u origin master
从命令行推送现有存储库
git remote add origin https://github.com/your_name/Ademo.git git push -u origin master
答案 41 :(得分:0)
只需使用SSH远程URL而不是HTTPS
答案 42 :(得分:0)
我在使用 Android Studio 时遇到了同样的问题,由于身份验证错误,我无法推送提交。
我的临时解决方案是使用GitHub desktop app来推送我的提交,并且工作正常。
答案 43 :(得分:0)
我的代码段:
environment {
...
...
git_repo = 'my-repo'
}
stage ('Update Helm Chart') {
steps {
echo 'Updating values.xml file with latest Docker image tag'
withCredentials([usernamePassword(credentialsId: '6bgg7dd45-c65f13-4275-a96ddehdv67gdr', usernameVariable: 'GIT_USER', passwordVariable: 'GIT_PASS')]) {
sh '''
git checkout ${git_branch}
...
...
git remote set-url origin "http://${GIT_USER}:${GIT_PASS}@git.example.com/scm/${git_repo}.git"
git push origin ${git_branch}
'''
}
}
}
我的Git用户名是deploy.user@example.com
,所以我必须先将URL encode @
改成%40
。经过URL编码后,我的用户名变为deploy.user%40example.com
。
但是,我仍然遇到以下错误:
fatal: repository 'http://****:****@git.example.com/scm/my-repo.git/' not found
经过反复试验,我发现如果我不使用变量作为用户名,而是对其进行硬编码,那么它将起作用。
git remote set-url origin "http://deploy.user%40example.com:${GIT_PASS}@git.example.com/scm/${git_repo}.git"
答案 44 :(得分:0)
问题:由于某些原因,Github不熟悉您的存储库。
错误:在git cli中提示如下:
远程:找不到存储库。致命:存储库 找不到“ https://github.com/MyOrganization/projectName.git/”
解决方案: 2个选项
Github可能不熟悉您的凭据:-第一个选项是使用正确的凭据user:password
克隆项目,以防万一您忘记了此操作或生成ssh令牌并进行调整这个密钥在您的Github中。 aka git push https://<userName>:<password>@github.com/Company/repositoryName.git
某些用户的回购权限问题-在我的用例中,当我意识到我对Github的权限不正确时,我解决了此问题在我的私人回购中。用户可以克隆项目,但不能对源执行任何操作。为了解决这个问题:
转到Github上的存储库->设置->协作者和团队->添加 成员/维护者您的用户->现在,他们获得了提交权限 然后推
答案 45 :(得分:0)
如果您的存储库之前曾正常运行,并且突然弹出此错误,则很可能是由于您的git已通过其他用户身份验证,该用户无权访问存储库。因此,为了进行推送,您所需要做的就是在git命令中指定正确的用户名和密码。因此,用于github仓库的push命令如下所示:
git push https://youruser:password@github.com/user/reponame.git
username and password
需要转义网址,因此 @ 应该替换为%40 ,依此类推。
答案 46 :(得分:0)
所以对我来说,我的密码中有一个`(勾号),PhpStorm在发送git push之前删除了该字符:
让我们说这个例子我的密码是_pa``ssword_
Phpstorm将输出以下内容:
https://_username_:_password_@github.com/_username_/repo.git
而不是
https://_username_:_pa``ssword_@github.com/_username_/repo.git
将密码更改为不使用`字符的内容。 WORKS !!!
答案 47 :(得分:0)
我有同样的问题。
我解决了将gitlab用户名添加到gitlab.com网址的前缀,如下所示: 之前: https://gitlab.com/my_gitlab_user/myrepo.git 之后: https://my_gitlab_user@gitlab.com/my_gitlab_user/myrepo.git 在这种情况下,将再次要求提供凭据,并且完成了!
答案 48 :(得分:0)
这也可能发生,因为GitHub本身已关闭。确保检查一下status.github.com,看看问题是否出在他们身边。
在2018年10月22日,您不能将GitHub推送几个小时。
答案 49 :(得分:-1)
还要确保检查是否安装了桌面客户端。我仔细检查了一切,我的许可,SSH,但事实证明我在客户端列出的仓库覆盖了我通过终端输入的仓库。
答案 50 :(得分:-1)
您必须生成 ssh 密钥并在设置中将其添加到您的 github 帐户中 转到您在其中克隆并运行这些命令的项目。-
1-ssh-keygen -t rsa -b 4096 -C "rajankumar148@gmail.com"
命令后你会得到一些选项路径和名称可以留空,你可以输入密码。
2-eval $(ssh-agent -s) .
3-ssh-add ~/.ssh/id_rsa
在这个命令之后,你必须输入你在第一个命令中创建的相同密码
之后,您可以检查您的默认主目录或它在终端上显示的任何目录 .pub 文件打开并复制密钥并在 github 设置新 ssh 中过去
答案 51 :(得分:-1)
使用 Ubuntu,我总是必须使用 SSH 而不是 HTTPS 添加远程
git remote add origin git@github.com:username/project.git
代替
git remote add origin https://github.com/username/project.git