我正在https://git-scm.com/docs/git-remote阅读信息,以及添加"名为< name>的远程的语法对于< url>"的存储库是:
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;文件夹,在该文件夹中,我应该有以下文件:
我的两个问题是:
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的在线帮助,并且它不会假设我在自己的远程服务器上托管代码。
谢谢。
答案 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章中详细介绍了这个主题,详细了解每个协议的优缺点。