2011-05-17 82 views
4

来自一个简单的“编辑直接在FTP”工作流程,我想尝试源代码版本控制。正如我所能想象的,GIT是一个非常受欢迎的选择。如何使用Git存储库进行Web开发(和部署)?

我是一个单一的开发。我在远程服务器(Linux)上有多个我在其上工作的网站(每个都在/ home/domains /中),我希望在本地开始工作(Mac OS),然后推回(更新远程文件)。

我不明白不过Git是应该如何为我工作。它看起来像我必须有一个“裸”的存储库,我不能有,因为我的项目已经有文件和文件夹,所以这意味着我必须创建一个新的裸存储库,然后本地推入的东西,然后拉远程。

这似乎有点奇怪,有3个仓库(1个本地和2个遥控器),当我只能在2个文件夹上工作。

我可以得到一些建议吗?

回答

3

有两个标准,神志清醒,选择,如果你有你的服务器和本地系统之间的在线访问。

首先,您可以为其他存储库添加远程设备,并在开始进行更改之前从其他存储库提取所有已提交的更改。这意味着,例如,如果您在本地系统上进行了更改,则必须将ssh切换到服务器并在该处进行更改。

其次,你可以创建一个纯仓库作为主。这是共享存储库的标准模型,尤其是涉及多个用户时,但在涉及一个用户时起作用,并且在两个系统之间可能没有全时间双向访问时首选 。这个裸仓库可以位于Mac系统,Linux服务器或第三个系统(例如github)上。在这种情况下,工作流程将从裸存储库中提取所有更改,进行更改,提交,然后将更改推送到裸存储库。没有特殊的挂钩,你仍然需要ssh到服务器,并发出拉来更新现场网站。

您可以通过从服务器存储库执行git clone --mirror --bare来创建新存储库。之后,您将在服务器上使用git add remote origin URL-TO-NEW-BARE-REPOSITORY。您可以在macosx系统上执行相同的操作,也可以在macosx系统上执行相同的操作,或者在系统配置中允许macosx系统推送到检出的Linux工作目录,这在技术上是可能的。我不建议这样做,特别是如果您也可能对该存储库进行更改,因为该过程可能/会破坏所有未提交的更改。自动挂钩可能会发生类似的问题,自动挂钩会自动将传入的提交发送到实时Web服务器目录。

为便于参考,考虑http://toroid.org/ams/git-website-howtohttp://joemaller.com/990/a-web-focused-git-workflow/

0

我的工作流程是这样的:

  • 我有一个远程回购和一个本地的(他们是正常的回购,而不是裸露的)
  • 我在我的本地回购工作
  • 我犯
  • 我把我的变化对远程回购
  • 我ssh到远程计算机并在远程回购运行git reset --hard更新文件

工作得很好对我来说,尤其是因为我用布做推复位步骤,所以它归结为单一fab push

为了说明我是一名开发人员,如果您在较大的团队中开发您的网页,可能无法很好地工作。

+0

我要去看得更远,这种方法。事实上,我忘了提及我是一名开发人员 – TibCristi 2011-05-17 22:19:06