我无法克隆一个Git存储库,并得到这个错误:

krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr
http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory

我读过Bitbucket, Windows和“致命:无法读取密码”,但仍然有问题。

我继续前进,但现在得到这个错误

sh.exe": chown: command not found

krishna.soni@KRISHNACHANDRAS /c
$ git clone ssh://krishna.sonipayu.in@stage.payupaisa.
/projects
Cloning into 'C:/projects'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

> krishna.soni@KRISHNACHANDRAS /c
>     $ git clone ssh:<url>
>     ts
>     Cloning into 'C:/projects'...
>     Permission denied (publickey).
>     fatal: Could not read from remote repository.

Please make sure you have the correct access rights

并且存储库存在。


当前回答

我一直面临着同样的问题,突然间我突然想到哪里会出问题。

在您的计算机上生成一个SSH密钥,如下所述:生成 SSH密钥。

这就是我做错的地方

在生成ssh密钥时使用下面的命令,但我没有使用sudo,而克隆时我使用的是“sudo git克隆ssh_repo_url”,因为克隆时我需要创建我的用户没有权限的文件夹

生成ssh的错误方法

$ ssh-keygen -t ed25519 -C "your_email@example.com"

正确的方法,如果在克隆时使用sudo

$ sudo ssh-keygen -t ed25519 -C "your_email@example.com"

登录您的GitHub帐户:GitHub Login。 在您的帐号中添加新生成的“SSH Key: My account SSH” 钥匙。 再次尝试git克隆项目。(使用sudo生成的密钥)

其他回答

macOS / Linux (Ubuntu):

1. 要进行身份验证,您需要从您的用户设置中将您的SSH密钥对的公共部分添加到bitbucket:用户设置——> SSH密钥

你可以在你的~/中找到上述公共部分。SSH目录,通常为id_rsa。酒吧。注意文件名的.pub部分为Public。 如果你还没有,它会帮助你生成一个

你还没有完成…

2. 您需要让系统知道对哪个远程主机使用哪个键,因此将这些行添加到~/中。ssh / config文件

Host bitbucket.org
 IdentityFile ~/.ssh/PRIVATE_KEY_FILE_NAME

其中PRIVATE_KEY_FILE_NAME是您的SSH密钥对的私有部分的名称,如果您没有乱动它,通常它的默认名称是:id_rsa 在这种情况下,将上面的PRIVATE_KEY_FILE_NAME替换为id_rsa(私钥没有.pub扩展名)

我在linux上也遇到了类似的问题。我通过登录到github服务器并创建一个部署密钥来解决这个问题。这是存储库的设置。然后,复制并粘贴我的公钥(通常在~/.ssh/id_rsa中)。Pub,但您的配置可能不同)。有一个复选框给予该密钥写权限。单击它(除非您只使用git进行部署,在这种情况下,不要单击它)。

如果你想克隆开源项目来提交一个Pull Request:

我想克隆一个开源项目,这样我就可以提交一些pull请求。问题是我没有项目所有者的许可。没关系,因为我的目的是提交一份PR,这里有一个可行的替代方案:

我的解决方案:

叉库

然后从你的分叉库克隆。 完善你的功能,然后提交一个pull request。

修复hub cli工具:

Git配置—全局中心。协议HTTPS长期 git远程添加OOPS https://github.com/isomorphisms/go.git && git推送OOPS立即修复


此错误发生在hub命令行工具上,因为它们的默认hub错误。协议git-config值。他们设置了回购

git://github.com/schacon/ticgit.git

而不是github实际接受的,即https://github.com/schacon/ticgit.git。


阅读LESS=+/“HTTPS代替”man hub将解释上述“长期修复”命令的来源。

对于来这里只是想获取存储库但不关心协议(ssh / https)的人,您可能只想使用https而不是ssh(如果支持ssh的话)。

举个例子

git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

而不是

git clone git@github.com:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

请注意,GitHub已弃用私人存储库的密码认证(https登录),因为它没有跟上最新的安全标准,使用个人访问令牌。

还需要注意的是,自2022年3月1日起,Bitbucket用户也不能再通过git通过https使用他们的Atlassian帐户密码,而是需要使用Bitbucket应用程序密码。