2010-02-26 124 views
1

因为我不想花费12美元购买易于使用的github.com私人主机,所以我将很多我的代码库放在共享主机帐户的小存储库中。这使我可以拥有尽可能多的代码回收。正确的git子模块链接

由于这些回购没有任何资源坐在那里,我还在该账户上放了几个非常轻的网站以最大化我的使用。这些网站实际上将一些相同的代码回购作为其项目的子模块使用。

因此,我通过ssh为每个回购站点和站点推/拉代码。这些网站本身只设置了一些指令,也拉动了这些子模块。

所以我有一个simplesite.tld项目在我的电脑有一个子模块,看起来像这样:

[submodule "modules/blog"] 
     path = modules/blog 
     url = [email protected]:~/git/modules/blog/ 

然后我的代码推到simplesite.tld并通过SSH和更新登录到共享主机在simplesite.tld模块

git submodule update 

但它要求我为“用户”我的SSH密码才能登录并获得回购代码。这只是一个烦恼,因为回购是在同一台服务器上。

那么有没有更好的子模块链接,我可以使用外国计算机(如我的电脑)和项目在同一个硬盘都可以使用?

回答

2

您可以通过SSH设置public key authentication以避免每次都输入密码。

+0

我为我的电脑做了这个,它的效果很好。但是,由于我已经SSH到服务器,然后通过SSH从同一个用户请求回购,我猜服务器变得困惑,并再次要求密码。我不知道如何为同一用户设置公用密钥来访问他自己的帐户。 – Xeoncross 2010-02-26 20:46:47

+2

您可以用自己的授权密钥文件('〜/ .ssh/authorized_keys')连接该用户的公钥('〜/ .ssh/id_rsa.pub')。 – mipadi 2010-02-26 23:04:59

+0

虽然如此,但永远不会有。 – Xeoncross 2010-03-03 16:04:19

1

您可能可以使用基本HTTP传输协议来为您的回购提供全局只读访问权限(假设没有问题),或者通过.htaccess指令限制访问权限。这应该适用于大多数共享主机帐户。这会让你在两个地方使用相同的网址。

或者,您可以使用除子模块以外的其他东西(我个人认为这对于许多潜在用例来说是相当不足的)。例如,我喜欢mr。它实现的功能与子模块稍有不同,但它可能会起作用。

1

我想你已经解决您的问题与冗余密码请求:)
如果没有,我最近有类似的问题,我通过使用相对URL子模块解决 - 看细节处Git submodules using relative urls