在一个git存储库中对不同目录进行版本控制?

时间:2019-04-25 12:53:26

标签: git

我想在一个git存储库中版本化多个与逻辑相关的目录。主要用于Windows Server 2012R2。

想象一下,我开发了一个虚构的Web应用程序,其中包括:

    Web服务器的htdocs目录(d:\ server \ htdocs * .php)中的
  1. php文件
  2. 由php文件(d:\ pythoncode * .py)调用的python脚本
  3. 某些第三方服务器模块(d:\ module1 \ abc \ d * .xml)的xml配置文件

执行此操作的好方法是什么?我不想使用单独的存储库,因为以上所有内容都是相关的,需要一起进行版本控制。我发现Maintaining unrelated directories in one git repository,但是它很旧,没有令人满意的答案。是否有此更新,例如使用任何形式的链接?像下面这样?

- git_repo_root
|-- php/    --> d:\server\htdocs\
|-- python/ --> d:\pythoncode\
|-- xml/    --> d:\module1\abc\d\

请注意,在此示例中,所有目录都位于同一分区上,但是对于不同分区的解决方案也非常感谢。

1 个答案:

答案 0 :(得分:3)

对我来说,就像您计划直接在实时系统上进行开发一样。除非您只是在研究废弃的原型,否则这可能不是一个好主意。

相反,请设置一个本地开发环境,您可以在其中随意使用所需的方式为不同文件类型配置路径。仅在此本地工作环境中进行版本控制。

配置开发设置的一种方法是使用链接。只需翻转示例中的链接即可:

- git_repo_root
|-- php/    <-- d:\server\htdocs\
|-- python/ <-- d:\pythoncode\
|-- xml/    <-- d:\module1\abc\d\

与以前的增量相比,只要您达到具有添加功能的稳定状态,就将运行应用程序所需的文件部署到实时系统。在最简单的情况下,可以使用脚本将文件复制到相应位置(例如通过SSH)来进行这种部署。

通过这种分隔,实时系统上已部署文件的目录结构将解耦或独立于Git存储库中的目录结构,因此在Git存储库的根目录之外的多个位置中对目录进行版本控制的需求就消失了。