![](/img/trans.png)
[英]How to deploy files from different Git branches to different folders on the server?
[英]How to have different branches in different folders in git?
我最近创建了一个存储库。 我在其中创建了两个分支, master
和dev
。 现在,当我复制repositry目录中的文件时,文件将被添加到两个分支中。 但我只想将文件添加到dev
分支,然后在dev
完成工作后,我会将dev
的文件夹中的内容复制到master's
文件夹中。 不幸的是,这两个分支被git认为是同一个文件夹。
那么如何在git中的不同文件夹中使用不同的分支?
从你的评论来看
假设在一个项目中有两个分支
frontend
和backend
。 前端分支仅包含静态html页面,后端分支包含动态php页面。 我下载前端分支然后你说它也将包含后端的PHP文件。
你严重误解了分支机构的目的。
根据用途,您不使用分支来分隔文件。 为此,您通常将它们放在不同的目录中。
您可以使用分支将项目状态与需要进行某些更改的不同项目状态分开。 拿一个你已经完成的网站。 它有一组用于前端和后端的文件。 你在分支master
有两套,它运行良好且稳定。 现在您决定使主题可自定义。 这通常需要在两组文件中进行更改。 但是你不想熄灭你网站的当前状态。 因此,您创建一个新的分支devel
并在新分支上进行更改(在两组文件上)。 现在,通过检查master
和devel
,您可以在网站的稳定状态和开发状态之间来回切换。
你的问题有点不清楚你需要什么,但git
支持submodule
,它允许你的存储库有一个子文件夹,这是另一个存储库。
这将允许您仅在存储库的一个子文件夹中更改内容,而不会影响您的根存储库。
您可以拥有两个存储库,每个存储库中有两个分支:
存储库主项目
main-master
main-dev
存储库
library-master
library-dev
在存储库中:
- main-master
- app
- modules
- lib --> git checkout library/lib-master
和
- main-dev
- app
- modules
- lib --> git checkout library/lib-dev
此结构允许您签出main-master
并具有正确版本的lib
子文件夹。
同时,如果将分支main-dev
clone
到另一个目录,它将只带来正确的内容。
要使用子分支checkout
根分支,请尝试: git clone <repo>:main-master --recursive
如果这是您所需要的,您可以在Git文档中看到更多相关信息。
或者在StackOverflow上 。
我不确定这是你在寻找什么,但我希望它有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.