使用GIT对Java网站进行版本控制的最佳方法是什么

使用GIT对Java网站进行版本控制的最佳方法是什么,git,jakarta-ee,tomcat,github,Git,Jakarta Ee,Tomcat,Github,我在unix中安装了一个git repo,用于跟踪Java EE网站的版本 我目前遇到的问题不是git的使用,而是我打算使用它的方式,下面将对此进行解释 我在一个由3名开发人员组成的团队中工作,他们为网站开发做出了贡献 最初,当我在服务器上安装Git时,我直接创建了一个包含实际工作文件的webapps目录的repo,并遇到了foll问题 1) 在将更改提交到repo时,我们中的一个人将执行一个git add.并将其提交到存储库,该存储库不仅会提交提交者更改的文件,还会提交其他开发人员的更改 当我

我在unix中安装了一个git repo,用于跟踪Java EE网站的版本

我目前遇到的问题不是git的使用,而是我打算使用它的方式,下面将对此进行解释

我在一个由3名开发人员组成的团队中工作,他们为网站开发做出了贡献

最初,当我在服务器上安装Git时,我直接创建了一个包含实际工作文件的webapps目录的repo,并遇到了foll问题

1) 在将更改提交到repo时,我们中的一个人将执行一个
git add.
并将其提交到存储库,该存储库不仅会提交提交者更改的文件,还会提交其他开发人员的更改

当我们面对这个问题时,我们决定需要为同一台服务器中的每个人在不同的目录中创建单独的非裸回购协议,以容纳整个代码。我们下面的基本工作结构如下所示:

如上图所示,我们创建了一个裸回购协议,该协议将由webapps推送网站内容,而webapps在图像中是工作目录

这里的基本工作流程是:

1) 为每个开发人员创建n个非裸回购协议

2) 从裸回购中获取整个网站的工作文件

3) 在对我们自己的回购协议进行修改后,将其推至裸回购协议

4) 配置了post-receive钩子的裸repo实际上会更新工作目录

此设置工作正常,但我们面临许多问题,如下所示:

1) 每个开发人员在一个单独的目录中拥有自己的contentts,在将代码推送到将更新工作目录的裸repo之前,无法测试代码-因为这些步骤即使对于一个jsp文件更改,我最终也会执行20次提交,直到它开始正常工作而没有bug,因为tomcat只指向原始文件工作目录

这已成为这里最麻烦的问题

该策略解决了以前存在的冲突问题,但在测试代码方面产生了更大的问题

在使用GIT in-out项目似乎是有益的情况下,我们如何改进这种情况


有人能提出任何改进的方法吗。

也许这样的策略可以奏效?我以前在一个小团队中使用过类似的策略,对我们来说效果很好:

  • 每个开发人员在进行任何更改之前都会创建一个分支
  • 开发人员做了一些工作并向他们的分支提交
  • 如果可能的话,开发人员可以对自己的目录运行tomcat(或者jetty,或者其他任何东西)进行测试。Maven让这变得很容易
  • 在推送之前,开发人员根据master重新设置其分支的基础
  • 开发商推动其分支机构进行裸回购
  • 然后,您(或负责最终批准的人)将分支合并到master中。如果开发人员重新设置了正确的基础,那么这应该是一个简单的快进合并
更新了关于每个开发人员如何运行webapp的一些想法:

我可以想出几种方法来完成上述第三点:

  • 使用tomcat的单个安装。为每个开发人员创建多个上下文

    例如,对于developer1,在tomcat_home/conf/catalina/localhost下创建一个名为dev1.xml的上下文文件,其内容类似于:

    ?xml version=“1.0”encoding=“UTF-8”?> Context path=“/dev1”docBase=“/home/developer1/wars/your-webapp-1.0.war”unpwar=“false”/


    (注意,我删除了第一个“也许像这样的策略可能有效?我以前在一个小团队中使用过类似的策略,它对我们很有效:

    • 每个开发人员在进行任何更改之前都会创建一个分支
    • 开发人员做了一些工作并向他们的分支提交
    • 如果可能的话,开发人员可以对自己的目录运行tomcat(或者jetty,或者其他任何东西)进行测试。Maven使这变得非常简单
    • 在推送之前,开发人员根据master重新设置其分支的基础
    • 开发商推动其分支机构进行裸回购
    • 然后,您(或负责最终批准的人)将分支合并到master中。如果开发人员正确地重新设置基础,这应该是一个简单的快速合并
    更新了关于每个开发人员如何运行webapp的一些想法:

    我可以想出几种方法来完成上述第三点:

    • 使用tomcat的单个安装。创建多个上下文,每个开发人员一个

      例如,对于developer1,在tomcat_home/conf/catalina/localhost下创建一个名为dev1.xml的上下文文件,其内容类似于:

      ?xml version=“1.0”encoding=“UTF-8”?> Context path=“/dev1”docBase=“/home/developer1/wars/your-webapp-1.0.war”unpwar=“false”/


      (注意,我删除了第一个‘您是要求在我们自己的repo中创建分支还是在工作目录本身中创建分支?我假设您要求我在我自己的repo中创建分支,这与实际的工作目录不同。正如您所述,
      开发人员需要在他们自己的目录下运行tomcat,我不知道。因为ave tomcat已安装,指向webapps目录,即工作目录。现在,当tomcat指向其他位置时,3个开发人员如何在自己的git目录下同时运行tomcat。通过每个开发人员在本地运行自己的tomcat,他们可以拥有一个中心脱机源。然后,如上所述,他们遵循“提交”完成后,将进程发送到您的中央tomcat服务器。否则,您将如何管理版本控制、代码完成和注销。因此,对于我创建的每个开发人员非裸repo,我需要在该目录中安装tamcat。因此,如果有5个开发人员正在工作,我将安装tomcat 5次。这是否有点昂贵。通常这项任务是如何完成的我是开发团队的成员。嗨,大卫,我更新了答案,并介绍了如何设置u