我有点困惑我是如何达到这一点的,但是当我做git remote -v
时,我从我的机器连接的服务器指向自己,所以它有时会发出有趣的警告通知
git remote -v
origin ssh://git@84.x.x.95/var/www/dating.co.uk (fetch)
origin ssh://git@84.x.x.95/var/www/dating.co.uk (push)
通告
On branch master
Your branch is ahead of 'origin/master' by 120 commits.
(use "git push" to publish your local commits)
或者
git push
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我意识到我永远不需要推动,但它仍然让我烦恼。
我怎样才能指出localhost
?或类似的东西,所以我不会得到这些错误?
答案 0 :(得分:0)
如果您已经仔细检查过服务器仓库的原始远程实际上是否已配置为存储库本身,那么您可能只需删除远程以消除该警告。 你仍然无法推进这种情况,因为你没有定义的遥控器可以推进。
了解消息的含义:
尝试推送时收到的错误消息是因为您的服务器有一个允许ssh到该计算机的ssh-key列表,但服务器的ssh密钥不在允许的密钥列表中。尝试从服务器执行ssh localhost
(为了让服务器尝试ssh到自己),你会得到同样的错误。为了允许服务器机器ssh到自身,您可以简单地允许访问服务器的ssh密钥。当您登录服务器时,执行cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(这假设您的服务器已经有一个ssh密钥)。有关详细信息,请参阅this instruction for how to configure ssh authentication。在执行此操作之后,您应该能够运行git fetch
,git pull
和git push
命令(但是从repo本身推送和获取并不是很有意义)。
执行git status
时收到的信息消息不是错误或警告。一个git repo维护一个叫远程跟踪分支的东西。可以列出远程跟踪分支
使用git branch -r
。远程跟踪分支只是从上次执行git fetch
时的远程分支状态的记录。由于您的repo的远程配置为repo本身,因此本地和远程分支不能真正发散。但是,由于您最近未运行git fetch
,因此远程跟踪分支尚未更新。只需运行git fetch
即可。此命令不会对git仓库中的对象进行任何更改,但远程跟踪分支将更新,git status将显示Your branch is up-to-date with 'origin/master'.
。有关远程跟踪分支的更多详细信息,请参阅the Git documentation。