是否有首选路径,我应该在Mac OS X上初始化我的Git仓库?

时间:2014-08-22 17:02:36

标签: git repository repository-design

我应该在哪里建造我的回购?我的教程repos转到root,但我想我会对我的生产站点进行测试,我应该在~/sites/中构建它们。

这看起来似乎微不足道,但是Git I的大部分介绍都没有真正指明特定的位置。

1 个答案:

答案 0 :(得分:9)

当您使用Git时,您可能正在使用多个存储库

首先,有本地存储库。这是一个存储在本地系统上的完整存储库。您必须拥有一个本地存储库才能使用Git,并且使用此项目的每个人都将在其系统上本地拥有此存储库的副本。这就是Git的工作方式。

将此本地存储库放在您希望工作的任何位置。在Subversion术语中,将其视为工作目录。我有一个$HOME/workdir我将所有项目放在我工作的地方。其中一些是Subversion工作目录(例如,~/workdir/verbox/trunk)。其中一些是本地Git存储库。 (~/workdir/git-box)。这样,我的所有工作都在一个中心位置。

然后,项目可以有各种远程存储库。这些是其他人拥有推送和提取信息的存储库。关于Git的好处是,它不一定是 master repo。每个人都有一个本地存储库,您可以自由地将更改提取或推送到其他存储库。例如,假设您正在与Bob合作开展一个项目。鲍勃,你会有一个本地Git回购这个项目。当您希望Bob看到您的更改时,您将您的更改推送到Bob的本地存储库。如果你想要Bob的更改,你从存储库中提取 Bob的更改。

您可能在Github上有另一个存储库,您将在其中发布代码。鲍勃和你都推送和从那个存储库中取出你的更改。没有回购。只是具有共同历史的回购,可以来回分享。

说到GitHub,如果您希望项目可以公开访问,那么设置Github项目是个好主意。无需担心管理或防火墙等。

如果您想要在Mac上公开访问项目的Git存储库(我不建议这样做),那么请设置一个新用户。为有权访问此存储库的每个用户设置SSH密钥,设置Mac防火墙以允许远程登录。并为该用户放置一个存储库副本。同时将此用户的默认shell设置为/bin/false。除了将更改推送或拉到此存储库之外,您不希望人们对此用户执行任何操作。

那么,Site目录下的$HOME目录呢?当OS X第一次出现时,有一种想法,Web开发人员会被它吸引(真的),并且他们想要在系统上运行Apache的httpd守护进程。默认情况下,httpd.conf设置为允许每个用户在系统上拥有自己的网页。例如,http://localhost/~beta208/...如果您将HTTP文件放在Site下,它将位于您的本地网页上。

事实证明,这不是Web开发人员想要操作的方式。在Mac OS X的更高版本中,默认情况下Apache httpd不会运行,并且不会自动配置Site目录。事实证明 Web开发包含各种各样的东西,并且Web开发人员将设置他们自己的系统,非常感谢,没有Apple的帮助。 Site目录就在那里,但就像一个退化的器官,它并没有真正做任何事情。在Mac OS X上创建的新用户没有Site目录。