0

我有一个复杂的 Web 项目模板,其中文件可以分为三类。首先,设置相关文件在每台服务器上应该是唯一的,不会经常更新,但如果能在版本控制中使用它会很好。其次,开发文件是开发人员编写的实际文件,每个项目都是唯一的,是要进行版本控制的主要文件。最后,用户生成的内容主要是阶段和开发环境中的测试数据,但在实时服务器上是适当的数据,理想情况下也应该是版本控制的。

每个项目的根文件夹中都有一个设置文件,它是第一组的一部分,然后是三个包含开发文件的文件夹,最后是一个包含网站图像的文件夹,以及用户生成的文件。

我试过的:

我不能使用整个文件夹,因为我会在本地直播和舞台上拥有相同的用户生成内容,并且每次我从本地推送到舞台以及从舞台推送到现场时都必须重新调整设置文件。

我已经尝试使用 master 分支来处理开发文件,并使用单独的分支来处理用户生成的内容和设置文件,然后只需将 master 从本地推送到舞台等。但是当我在舞台上进行结帐时,它会删除不相关的文件。

我已经尝试为开发、用户生成的内容和设置创建单独的分支,然后在推送到阶段后将所有内容合并到 master 中。这种情况下的问题出现在本地开发服务器上,提交过程变得稍微复杂:checkout dev;添加更改的文件;提交开发;结账大师;合并开发 ugc 设置。我也担心在这种情况下会丢失一些 ugc 跟踪的文件。

大问题

任何人都可以提出一个新的解决方案或任何添加到当前解决方案以使其成为可能的东西吗?不幸的是,我不能使用单独的文件夹,因为使用的框架(私有文件夹)不允许这样做。

4

1 回答 1

0

尽管这是一种非常糟糕的组织方式,但您可以将嵌套的 Git 存储库与.gitignore忽略不属于给定存储库的任何内容的文件一起使用:

.git/
.gitignore   <---- ignoring everything except settings-file
your_project
  .git/
  .gitignore <---- ignoring settings-file, user content, and user-content/.git
  dev-folder-1/
  dev-folder-2/
  settings-file
  user-content/
    .git/
    .gitignore <-- ignoring everything except user content

这将有效地允许您拥有 3 个不同的“重叠”存储库来跟踪文件结构的不同部分。

但实际上,最好只是找到一种方法来重新组织您的文件和/或版本控制需求。

于 2011-01-10T08:54:00.817 回答