我应该在哪里建造我的回购?我的教程repos转到root,但我想我会对我的生产站点进行测试,我应该在~/sites/
中构建它们。
这看起来似乎微不足道,但是Git I的大部分介绍都没有真正指明特定的位置。
答案 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
目录。