我试图设置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。如果是这样,我不知道如何改变这一点,或者如果我可以推下一个别名


当前回答

这通常是由于SSH密钥与远程不匹配造成的。

解决方案:

转到终端,输入以下命令(Mac, Linux)替换为您的电子邮件id。 ssh -t rsa -C "you@email.com" 从word ssh开始,使用以下命令复制生成的密钥。 猫~ / . ssh / id_rsa . pub 粘贴在github, bitbucket或gitlab各自的远程。 保存它。

其他回答

当我试图将代码从工作默认点推到工作git时,我得到了这个错误。 所以我采取了以下步骤:

去我的个人git账户,用默认设置创建了repo 在终端上,git远程添加origin git@github.com:/.git Git push——set-upstream origin master,确保origin是upstream,下一次提交只能使用Git push进行。

出于某种原因,没有其他方法适合我。希望这有助于使用2个或更多git帐户的人。

您可以指定SSH应该发送到远程系统的用户名作为远程URL的一部分。在远程主机名之前输入用户名,后面加@。

git remote set-url website abc@***.com:path/to/repo

在你的。git/config文件中

[remote "YOUR_APP_NAME"]
    url = git@heroku.com:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

并简单地

git push YOUR_APP_NAME master:master 

在极少数情况下,您将得到“致命:无法从远程存储库读取”错误,如在

[user@example.com repo]$ git fetch --all --prune
Fetching origin
exec request failed on channel 0
fatal: Could not read from remote repository.

当Git服务器文件系统已满时。要验证这一点,请运行:

ssh -v ssh://git@yourhost/path/repo.git

如果服务器像这样回复:

...
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/...
SHA256:...
debug1: Server accepts key: /home/...
SHA256:...
Authenticated to linux-git.....com ([xxx.xxx.xx.xx]:xx) using "publickey".
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: filesystem full
...
debug1: Remote: PTY allocation disabled.
PTY allocation request failed on channel 0
shell request failed on channel 0

服务器的磁盘空间会被占满。

我知道这个答案不会得到很多人的支持;为了完整起见,添加它。

附注:也可以使用类似

GIT_SSH_COMMAND="ssh -v" git pull

诊断问题。

我间歇性地遇到这个问题,大多数时候它不会给出错误消息。对我来说,解决方案是在我的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