Git:什么是 project.git 以及如何通过 SSH 从拥有的域中克隆它 克隆

问题描述

这很愚蠢(问题或 git 系统或 git 文档 - 我还没有决定)。

我可以通过 ssh 访问客户端的服务器。有一个网站 domain.com,还有 git 存储库,它们在 /var/www/html 下。在 git 配置文件中没有遥控器,但它们应该在那里吗? Git 本身已经安装,我可以列出历史记录。

主题是问题:在本地电脑上,我如何从该存储库中推送和拉取?还是我误会了什么?

解决方法

您似乎有一个想要在本地计算机上使用的远程存储库。

克隆

您需要在本地机器上有一份该存储库的副本,否则您将如何使用它,对吗?让我们看看文档:

SSH 协议

Git 自托管时的通用传输协议 已通过 SSH。这是因为已经设置了对服务器的 SSH 访问 在大多数地方 — ,如果不是,则很容易做到。 SSH 也是一个 经过身份验证的网络协议,因为它无处不在,所以 通常易于设置和使用。

要通过 SSH 克隆 Git 存储库,您可以指定一个 ssh:// URL,例如 这个:

$ git clone ssh://[user@]server/project.git

或者你可以使用较短的 SSH 协议的类似 scp 的语法:

$ git clone [user@]server:project.git

在上述两种情况下,如果您 不要指定可选的用户名,Git 假定您是用户 当前登录为。 [source]

在您的情况下,命令应该是 ssh://root@domain.com/var/www/html/.git1,因为我们能够在评论中敲定。

这将在本地克隆该存储库,并将您的本地克隆设置为指向该存储库作为远程。

伙计,重点是我已经阅读了那个 git doc 和所有相关的东西。命令末尾到处都是 project.git,我猜是 repo 名称。

现在我看到了混乱。通常,在本地将 git 存储库克隆为工作副本。工作副本有一个根目录,里面有一个隐藏的 .git 文件夹。但是,this is not always the case,因为您可以create 将存储库作为 bare。将裸存储库初始化为 repo.git 是一个约定(据我所知不是强制性的)。裸存储库不包含隐藏的 .git 文件夹,因此,“.git”附加到根文件夹名称。这就是你经常在 git 文档中看到 project.git 的原因。

git 配置文件中没有遥控器,但它们应该在那里吗?

在遥控器上,可能没有,不应该有。这不是一般规则(相反),但从您的描述来看应该是最好的答案。在你的本地克隆上,相反,应该有一个。


1) 这告诉我们两件事:如果在那个位置有一个文件夹 .git,那么你的根文件夹是 html 和它里面的所有内容受版本控制。因此,您的遥控器被设置为工作副本。如果不是这种情况,因为您说您可以在远程运行一些 git 命令,您可能需要check if the remote is bare 并使用这些工具对该存储库的根目录进行故障排除。