我最近创建了一个存储库。我在其中创建了两个分支master
和dev
。现在,当我复制repositry目录中的文件时,文件将被添加到两个分支中。但我只想将文件添加到dev
分支,然后在dev
中完成工作后,我会将dev
文件夹中的内容复制到master's
文件夹中。不幸的是,两个分支被git认为是同一个文件夹。
那么如何在git中的不同文件夹中使用不同的分支?
答案 0 :(得分:5)
答案 1 :(得分:3)
根据你的评论判断
假设在一个项目中有两个分支
frontend
和backend
。 前端分支仅包含静态html页面和后端分支包含 动态的PHP页面。我下载前端分支,然后你也说 包含后端的php文件。
你严重误解了分支机构的目的。
根据用途,您不使用分支来分隔文件。为此,您通常将它们放在不同的目录中。
您可以使用分支将项目状态与需要进行某些更改的其他项目状态分开。拿一个你已经完成的网站。它有一组用于前端和后端的文件。您在分支master
中有两个集合,并且它运行良好且稳定。现在您决定使主题可自定义。这通常需要在两组文件中进行更改。但是你不想熄灭你网站的当前状态。因此,您创建一个新分支devel
并在新分支上进行更改(在两组文件上)。现在,通过签出master
和devel
,您可以在网站的稳定状态和开发状态之间来回切换。
答案 2 :(得分:0)
您的问题有点不清楚您需要什么,但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
子文件夹的正确版本。
同时,如果您clone
分支main-dev
到另一个目录,它将只带来正确的内容。
要使用子分支到checkout
根分支,请尝试:git clone <repo>:main-master --recursive
如果这是您所需要的,您可以在Git Documentation中查看更多相关信息。
我不确定这是你在找什么,但我希望它有所帮助。