我在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正常工作?
The first thing you may want to confirm is the internet connection. Though, internet issues mostly will say that the repo cannot be accessed.
Ensure you have set up ssh both locally and on your github. See how
Ensure you are using the ssh git remote. If you had cloned the https, just set the url to the ssh url, with this git command git remote set-url origin git@github.com:your-username/your-repo-name.git
If you have set up ssh properly but it just stopped working, do the following:
eval "$(ssh-agent -s)"
ssh-add
If you are still having the issue, check to ensure that you have not deleted the ssh from your github. In a case where the ssh has been deleted from github, you can add it back. Use pbcopy < ~/.ssh/id_rsa.pub to copy the ssh key and then go to your github ssh setting and add it.
我建议你总是使用ssh。对于我合作过的大多数团队来说,除非使用ssh,否则您无法访问回购(大多数是私有的)。对于初学者来说,这可能看起来很难,但后来你会发现它更容易和更安全。
我在用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,然后应该就可以了。
我在上传项目到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:这是初始化时我想推到的分支的名称
如果您使用的是共享机器,那么使用自己的密码或无密码私钥可能会有些过分。更安全的选项是访问令牌:
进入设置,开发人员设置,个人访问令牌
生成新的令牌。
注意标记的用途。
授予回购权限。
克隆回购:
$ 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.