在现有网站上添加git工作流程的最佳实践

时间:2017-11-14 22:45:18

标签: git ssh version-control repository

到目前为止,我一直在我的网站上工作,在我的服务器上没有任何版本控制权(基本上是通过IDE / over ssh直接通过sftp打开和修改存储在每个/var/www/vhosts/domain.tld/httpdocs-Folder中的文件)足以满足我的需求。

现在,我正在寻找与其他开发者合作的最佳方式,并将git用于所有这些现有网站。

建议创建多个裸存储库,例如

  

/home/git/domain_1.git,/home/git/domain_2.git,...

例如git init --bare domain_1.git等文件夹中的/home/git/ 使用我的root-Account,然后以某种方式**将每个已存在的/var/www/vhosts/domain/httpdocs-Folder添加到每个这些裸git repos中,然后为每个repo添加一个钩子(post-receive?)以覆盖它的特定/var/www/vhosts/domain.tld/httpdocs-Folder at每一次推动。然后通过git-User为每个开发者提供访问权限,使用ssh://git@1.2.3.4:/home/git/domain_1.git这样的网址为每个单独的回购。

如果那种方式应该没问题:那里有任何类型的演练吗?我找不到任何东西,而且我正在寻找一个合适的解决方案,因为几天没有开玩笑......

或者有没有更好的/最好的做法来解决这类问题?

** =(怎么样?!因为没有像git add这样的git命令可以处理这些裸露的回购... ...

2 个答案:

答案 0 :(得分:1)

首先祝贺您决定使用版本控制系统来管理您的代码库。 第二件事你不需要多个裸存储库来维护源代码管理中的多个文件夹。 既然您已经要求了最佳实践,我将直接了解您需要做些什么来设置自己的源代码控制。

您需要DVCS工具---> GIT 一个托管源代码的存储库----> Github / Bitbucket Cloud 在上面的源代码管理工具中创建存储库后,创建并清空repo并将所有代码拉入该repo。关注this了解如何使用?

接下来,您需要设计一个分支策略,以便其他开发人员可以继续在相同的代码库上进行开发。我会从一个简单的东西开始,比如一个主分支(维护不同的发行版本)和一个名为develop的集成分支。您的开发人员需要创建功能分支以实现新功能。您可以查看它们并将它们合并到集成,然后再合并到主控。 要了解详情,您可以关注https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows

答案 1 :(得分:1)

您不想使用裸仓库(因为它won't have a working directory)。

要创建您的存储库,您可以在文件的任何目录的根目录中使用git init。更好的是,使用github / bitbucket,它会为你创建回购。然后你可以克隆它,进行初始提交,然后推送。

这里的关键点是,您存储代码的“主要”位置不在实时服务器上,而不在开发计算机上。这也使得每个人都不必ssh到您的实时服务器来执行push

然后,您可以在开发计算机上的任何地方克隆您的存储库以进行更改。 commitpush回到了bitbucket。然后,您的实时服务器上有另一个克隆(适用于/var/www/vhosts/domain.tld/httpdocs-Folder),您的“部署”过程将git pull,以获取已推送到bitbucket的最新更改。

其他选项包括让流程针对您commit分支的任何master观看您的bitbucket repo并自动pull

为了安全起见,您需要research branching strategies。选择一个并确保所有提交者都知道如何遵循它。

一个简单的方法是让master分支成为“生活中的东西”,develop是你做出改变的地方。因此,更改从开发人员计算机develop分支到master分支到bitbucket到实时服务器。使用pull请求(带代码审查)将代码合并到master将有助于保持master稳定。