【问题标题】:push to git server with ssh config file使用 ssh 配置文件推送到 git 服务器
【发布时间】:2018-09-26 19:47:18
【问题描述】:

我有一个安装了 git 的 AWS 实例,并在 /var/repo/mysite.git 中配置了一个 repo,在 /var/www/mysite.com 中有一个工作目录

由于我的 AWS 实例不提供 root ssh 访问(并且 ssh 配置在不同的访问端口上),我还有一个 ~/.ssh/config 文件;

    Host mysite.com 
     HostName path-to-ec2.amazon.com 
     User ubuntu
     Port 0000
     IdentityFile ~/.ssh/my-ec2-pem-file 

我可以毫无问题地像这样 ssh:

ssh mysite.com

我可以毫无问题地添加我的远程主机:

git add remote mysite mysite.com:/var/repo/mysite.git

但是当我尝试推送时,我得到了一个错误。

git push mysite master 

错误:

错误:src refspec master 不匹配任何内容。 错误:未能将一些引用推送到 'mysite.com:/var/repo/mysite.git'

我尝试了很多变体,包括添加“ssh://user@...”(带/不带用户)和“ssh://”。我已经尝试更改 repo 的路径等。

我似乎无法以任何方式推送这个 repo。谁能帮我解决这个问题?

【问题讨论】:

  • 如果你有本地的master,试试git push mysite -u master:refs/heads/master

标签: git amazon-web-services ssh


【解决方案1】:

所以,似乎有几件事是错误的.. 要么我的远程仓库没有正确配置以查看 /var/www/... 和 /var/repos/... 要么它没有正确设置为一个 --bare 回购。

我现在已经将 repo 和工作目录移动到我的 /home/ubuntu 目录中,并使用 --bare 标志设置 repo,然后将 ./hooks/post-receive 脚本设置为“checkout -f”分别在 repo/working 目录上。

看来我现在已经启动并运行了。

【讨论】:

    【解决方案2】:

    此错误消息表示您提供给推送的引用列表(在本例中为分支)与您本地存储库中的任何内容都不匹配。这可能是因为 master 分支在本地不存在。

    【讨论】:

    • no.. 似乎是远程仓库不是 --bare 的问题(我将在下面发布答案)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2015-03-14
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    相关资源
    最近更新 更多