我刚刚在Gitlab上创建了一个新的git repo。
我按以下方式初始化并推送已填充的目录:
git init
git remote add origin git@gitlab.com:username/reponame.git
git add .
git commit -m 'first commit'
git push -u origin master
一切按预期工作。但是,当我试图从回购中撤回时,我得到了
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
此错误显示为:
git pull
git fetch
它不会出现:
git push
推送工作正常,我已经推了几个更改......
我最初确实错误地输入了我的ssh密码,并且首先试图推送一个空的回购。
这里有什么问题?
答案 0 :(得分:3)
好的,好像它出现了。
Git init生成了一个属于root的FETCH_HEAD文件。 .git /的其余部分是我的用户。
我必须将文件的所有权更改为我的用户然后解决了问题。
为什么不是简单地拒绝我访问我不知道的文件的权限。
答案 1 :(得分:0)
您收到的错误是SSH错误。当您使用user@host:path
语法时,Git会使用SSH,但{/ 1}}和git pull
之间的差异在身份验证后出现(此错误)。所以它不是推/拉的问题,但它必须是你调用它的方式(例如,因为你从设置了不同环境变量的两个不同终端调用git push
和git pull
。
你可以在终端上跑:
git push
实际上,由于这只是一个SSH问题,你也可以使用ssh本身进行调试:
git pull; git push
答案 2 :(得分:0)
我相信发生了SSH错误。 Troubleshoot the following:
var yourDictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(testModel);;
//then you need to write some logic to get values from dictionary and convert it into your object of CaseDetailViewModel
确保您使用的密钥与正在使用的密钥相同:
ssh -vT git@github.com