能推不能拉git
I can push but not pull git
我刚刚在 Gitlab 上创建了一个新的 git 存储库。
我按以下方式初始化并推送了一个已经填充的目录:
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 密码,并首先尝试推送一个空的 repo。
这里有什么问题?
您遇到的错误是 SSH 错误。当您使用 user@host:path
语法时,Git 使用 SSH,但 git pull
和 git push
之间的区别在于 在 身份验证之后(和这个错误)。所以这不是 push/pull 的问题,但它必须是你调用它的方式(例如,因为你从设置了不同环境变量的两个不同终端调用了 git pull
和 git push
)。
你能运行在终端中吗:
git pull; git push
?
实际上,由于这只是一个 SSH 问题,您也可以使用 ssh 本身进行调试:
ssh -vvv git@gitlab.com:username/reponame.git
我认为发生了 SSH 错误。 Troubleshoot the following :
- 检查您是否确实连接到服务器:
ssh -vT git@github.com
确保您的密钥与正在使用的密钥相同:
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
# Agent pid 59566
ssh-add -l
# 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)
- 仔细检查您的 SSH 密钥:https://help.github.com/articles/generating-ssh-keys
好的,它出现了。
Git init 生成了属于 root 的 FETCH_HEAD 文件。 .git/ 的其余部分是我的用户。
我不得不将文件的所有权更改为我的用户,然后问题就解决了。
为什么它不是简单地拒绝我访问我不知道的文件的权限。
我刚刚在 Gitlab 上创建了一个新的 git 存储库。
我按以下方式初始化并推送了一个已经填充的目录:
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 密码,并首先尝试推送一个空的 repo。
这里有什么问题?
您遇到的错误是 SSH 错误。当您使用 user@host:path
语法时,Git 使用 SSH,但 git pull
和 git push
之间的区别在于 在 身份验证之后(和这个错误)。所以这不是 push/pull 的问题,但它必须是你调用它的方式(例如,因为你从设置了不同环境变量的两个不同终端调用了 git pull
和 git push
)。
你能运行在终端中吗:
git pull; git push
?
实际上,由于这只是一个 SSH 问题,您也可以使用 ssh 本身进行调试:
ssh -vvv git@gitlab.com:username/reponame.git
我认为发生了 SSH 错误。 Troubleshoot the following :
- 检查您是否确实连接到服务器:
ssh -vT git@github.com
确保您的密钥与正在使用的密钥相同:
# start the ssh-agent in the background eval "$(ssh-agent -s)" # Agent pid 59566 ssh-add -l # 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)
- 仔细检查您的 SSH 密钥:https://help.github.com/articles/generating-ssh-keys
好的,它出现了。
Git init 生成了属于 root 的 FETCH_HEAD 文件。 .git/ 的其余部分是我的用户。
我不得不将文件的所有权更改为我的用户,然后问题就解决了。
为什么它不是简单地拒绝我访问我不知道的文件的权限。