什么应该&#34; <url>&#34;值为&#34; git remote add <shortname> <url>&#34;?

时间:2017-05-17 18:23:32

标签: git

我正在https://git-scm.com/docs/git-remote阅读信息,以及添加&#34;名为&lt; name&gt;的远程的语法对于&lt; url&gt;&#34;的存储库是:

git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>

我想了解我需要用于<url>的价值。我需要在服务器上做什么?假设在我的远程服务器中,我想将代码放在:

/home/myusername/public_html/mysourcecode

根据我的理解,在/home/myusername/public_html/mysourcecode的情况下,我应该有一个&#34; public.git&#34;文件夹,在该文件夹中,我应该有以下文件:

enter image description here

我的两个问题是:

1)我需要从服务器做什么才能生成/home/myusername/public_html/mysourcecode/public.git/,其内容如上图所示?是仅将我的源代码放在/home/myusername/public_html/mysourcecode/然后使用git init

2)一旦我有/home/myusername/public_html/mysourcecode/public.git/的相应内容,当我添加远程存储库时,我可以在下面的代码中使用的<url>是什么?

    git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>

我在考虑使用以下内容:

git remote add mysourcecode ssh://username@domain.com/~myusername/public_html/mysourcecode/public.git

但是,在这种情况下,我<url>的值为ssh://username@domain.com/~myusername/public_html/mysourcecode/public.git,我通常会看到以下内容:

git remote add origin https://github.com/folder/something.git

我想知道我应该使用<url>的价值是什么。

重要提示:我根本不使用GitHub。我有自己的服务器,我只使用Git,而不是GitHub,所以我在我自己的服务器上托管所有东西。通常我会找到特定于GitHub的在线帮助,并且它不会假设我在自己的远程服务器上托管代码。

谢谢。

1 个答案:

答案 0 :(得分:1)

Pro Git一书中的内容包含在&#34;第4章:服务器上的Git&#34;,可在线获取&#34; https://git-scm.com/book/en/v1/Git-on-the-Server&#34;。

要使用远程存储库,必须首先存在此存储库。这意味着您需要在服务器上安装Git。

接下来,服务器上的存储库不需要有工作目录,只需要git元数据。这样的存储库称为 bare 存储库。 您可以使用

从旧存储库本地创建裸存储库
$ git clone --bare mysourcecode mysourcecode.git
Cloning into bare repository 'mysourcecode.git'...
done.

您希望像看起来那样使用Git而不是SSH,因此请使用SSH将此存储库复制到服务器,以后Git将为其提供服务:

$ scp -r mysourcecode.git username@domain.com:/~myusername/git

我建议您不要使用public_html目录。

现在,您可以使用

克隆此项目本地
$ git clone username@domain.com:/~myusername/git/my_project.git

或者使用

将其作为远程添加到现有存储库
$ git remote add origin username@domain.com:/~myusername/git/my_project.git

请注意,您可以跳过ssh://并在域和路径之间使用冒号(:)。此外,该目录需要对SSH用户可读。

对于带有https://的网址,这是另一种方式。您可以使用不同协议的Git - SSH,HTTPS和Git协议。所有人都有自己的优点和缺点。

上面提到的这本书在第4章中详细介绍了这个主题,详细了解每个协议的优缺点。