我试图设置git与http://danielmiessler.com/study/git/#website来管理我的网站。

我已经到了指令的最后一步:git push website +master:refs/heads/master

我正在win7中使用git ming32命令行工作

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

这里的一个问题可能是程序正在寻找bill@* **.com。当我通过ssh连接到我的网站,我有一个不同的用户名(让我们说'abc')。也许这个应该是abc@***。com。如果是这样,我不知道如何改变这一点,或者如果我可以推下一个别名


当前回答

我间歇性地遇到这个问题,大多数时候它不会给出错误消息。对我来说,解决方案是在我的LDAP服务器的IP地址改变之后正确地配置LDAP。

的/etc/gitlab/gitlab.LDAP的rb配置指向一个不存在的IP地址,因此更改主机以指向LDAP服务器的正确主机名解决了这个问题。

要诊断问题,使用gitlab-ctl tail命令来帮助您找到堆栈跟踪。对我来说,我找到了这个stacktrace:

==> /var/log/gitlab/gitlab-rails/production.log <==

Net::LDAP::Error (No route to host - connect(2) for 10.10.10.12:389):
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/net-ldap-0.16.0/lib/net/ldap/connection.rb:72:in `open_connection'
...

修改/etc/gitlab/gitlab.rb中的主机值

gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
   main: 
     label: 'My LDAP'
     # this was an IP address
     # host: '10.10.10.12'
     host: 'internal-ldap-server' # this is the fix
     port: 389

在更改上面的配置文件之后,一定要重新配置gitlab

gitlab-ctl reconfigure

其他回答

如果在“git push origin master”命令后,你看到错误“could not read from remote repository”,然后试试这个

1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master 

确保你在.git/config中有正确的url

url = git@github.com:username/repo.git

如果这是你第一次推,你需要在正确的上游设置

$ git push -u origin master

你可以检查哪个键被使用:

$ ssh -vvv git@github.com

回复应该包含如下内容:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.

也可以在~/中为ssh定义规则。Ssh /config,例如基于别名:

   Host github
      HostName github.com 
      User git
      IdentityFile "~/.ssh/id_rsa"

   Host git
      HostName github.com 
      User git
      IdentityFile "~/.ssh/some_other_id"

您可以为每个别名设置连接到不同的端口,使用不同的用户名等。

我有一个完美的工作git,突然我得到了一个错误,当我试图推到master。我发现,这是因为存储库主机有问题。

如果你使用GitHub或Bitbucket,你可以很容易地检查状态

https://status.github.com/messages或https://status.bitbucket.org/

在我的情况下,我试图克隆与sudo。根据Github的文档,你不应该使用sudo与git克隆: https://help.github.com/en/github/authenticating-to-github/error-permission-denied-publickey#should-the-sudo-command-be-used-with-git

我所做的是给当前用户编辑目录的权限(Debian 9):

chown myuser:root .

然后克隆没有sudo,它工作。

如果您使用Gitlab,则可能需要在尝试拉或推之前登录并接受Gitlab的新术语。