我可以推,但不要拉git

时间:2015-06-10 05:18:39

标签: git gitlab

我刚刚在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密码,并且首先试图推送一个空的回购。

这里有什么问题?

3 个答案:

答案 0 :(得分:3)

好的,好像它出现了。

Git init生成了一个属于root的FETCH_HEAD文件。 .git /的其余部分是我的用户。

我必须将文件的所有权更改为我的用户然后解决了问题。

为什么不是简单地拒绝我访问我不知道的文件的权限。

答案 1 :(得分:0)

您收到的错误是SSH错误。当您使用user@host:path语法时,Git会使用SSH,但{/ 1}}和git pull之间的差异在身份验证后出现(此错误)。所以它不是推/拉的问题,但它必须是你调用它的方式(例如,因为你从设置了不同环境变量的两个不同终端调用git pushgit pull

你可以在终端上跑:

git push

实际上,由于这只是一个SSH问题,你也可以使用ssh本身进行调试:

git pull; git push

答案 2 :(得分:0)

我相信发生了SSH错误。 Troubleshoot the following

  1. 检查您是否实际连接到服务器: 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
  2. 确保您使用的密钥与正在使用的密钥相同:

    ssh -vT git@github.com
  3. 仔细检查您的SSH密钥:https://help.github.com/articles/generating-ssh-keys