我在Windows上使用TortoiseGit。当我试图从标准Windows资源管理器的上下文菜单克隆时,我得到这个错误:
请确保您拥有正确的访问权限并且存储库存在
更准确地说,终端的快照如下:
——progress -v "git@arobotdev:\git\AlfaRobot. exe。git”“C: \ \ AlfaRobot”
克隆到“C:\Work\AlfaRobot”…
权限被拒绝,请重试。
权限被拒绝,请重试。
权限被拒绝(公钥,密码)。
无法从远程存储库读取。
请确保您拥有正确的访问权限
并且存储库存在。
Git没有干净地退出(退出代码128)(21450 ms @ 19.09.2014 10:36:58)
我应该怎么做才能使git正常工作?
如果您使用的是共享机器,那么使用自己的密码或无密码私钥可能会有些过分。更安全的选项是访问令牌:
进入设置,开发人员设置,个人访问令牌
生成新的令牌。
注意标记的用途。
授予回购权限。
克隆回购:
$ git clone https://<token>@github.com/<user>/<repo>.git
如果你已经克隆了repo,你可以修改你的远程设置:
$ git remote set-url origin https://<token>@github.com/<user>/<repo>.git
$ git pull
Already up to date.
我在上传项目到gitlab时遇到了这个错误。我没有从git克隆,而是上传项目。要将代码推送到gitlab,有两种方法:使用ssh或https。如果你使用https,你必须输入用户名和密码的gitlab帐户。为了推动你的代码到git,你可以使用下面的一个。
第一次推到Git
>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
-C参数是可选的,它在键的末尾提供了一个注释,如果您有多个键,则可以将其与其他键区分开来。
这将创建id_rsa(您的私钥)和id_rsa。Pub(您的公钥)。我们传递我们的公钥,并保留我们的私钥——嗯,是私有的。在Gitlab的用户设置中,您可以将您的公钥添加到您的帐户,从而允许我们最终推送。
在项目位置(目录)中使用以下命令
git init
它将当前目录转换为Git存储库。这将在当前目录中添加一个.git子目录,并使开始记录项目的修订成为可能。
使用https路径推送
git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master
使用ssh路径
git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master
—set-upstream:告诉git到原点的路径。如果Git之前推送过当前的分支,它会记住原点在哪里
master:这是初始化时我想推到的分支的名称
我在用Ubuntu
在阅读了许多答案后,没有一个能解决问题,即使我已经添加了SSH密钥到我的git帐户,并尝试使用SSH -T git@gitlab.com测试它,它说欢迎<我的用户名>,但它仍然告诉我,我没有访问权限。后来我找到了原因:
通常情况下,如果你不是root用户,它会要求你对每个git命令都运行sudo。
当运行sudo git clone <SSH....>(例如)。它将在root权限下执行,但无意中创建SSH密钥时,我以普通用户运行它,并将密钥保存在~/中。Ssh /id_rsa,解析绝对路径为“/home/username/. Ssh /id_rsa”。当做sudo git克隆…它在/root/.ssh/id_rsa中查找SSH密钥
为什么我可以确定。查看git在哪里查找SSH密钥。执行命令sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <您的仓库在ssh >。它将显示在哪里查找SSH密钥。
所以我建议的解决方案是:
重新创建您的SSH密钥(遵循此说明),但在第一步运行sudo su,然后应该就可以了。