我最近创建了一个存储库。我在其中制作了两个分支,master
和dev
。现在,当我将文件复制到存储目录中时,文件将被添加到两个分支。但我只想将文件添加到dev
分支,然后在dev
完成工作后,我会将dev
的文件夹中的内容复制到master's
文件夹中。不幸的是,这两个分支被git认为是相同的文件夹。如何在git中的不同文件夹中有不同的分支?
那么如何在git中的不同文件夹中有不同的分支?
我最近创建了一个存储库。我在其中制作了两个分支,master
和dev
。现在,当我将文件复制到存储目录中时,文件将被添加到两个分支。但我只想将文件添加到dev
分支,然后在dev
完成工作后,我会将dev
的文件夹中的内容复制到master's
文件夹中。不幸的是,这两个分支被git认为是相同的文件夹。如何在git中的不同文件夹中有不同的分支?
那么如何在git中的不同文件夹中有不同的分支?
你的问题有点不清楚你需要什么,但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。
或在这里StackOverflow。
我不确定这是你在找什么,但我希望它有帮助。
这对我来说太复杂了。如果我删除我的本地存储库并克隆C目录中的远程'master'分支并克隆D目录中的'dev'分支? – user31782
然后,你将有他们究竟在文件夹C和D.相同的,如果你想他们是不同的,你必须有两个分支在'root'库,他们每个人从'submodule'指向不同的'hash' (子文件夹) - 这是另一个存储库。 – Tom
假设在一个项目中有两个分支“前端”和“后端”。前端分支仅包含静态html页面,而后端分支包含动态php页面。我下载'frontend'分支,然后就像你说的那样,它也会包含'后端'的php文件。是不是有一种简单的方法来从这个下载的仓库只复制前端html文件? – user31782
从您的评论
假设在一个项目的判断有两个分支
frontend
和backend
。 前端分支只包含静态html页面,而后端分支包含动态php页面 。我下载前端分支,然后如你所说,它也将 也包含后端的PHP文件。
你严重误解了分支的目的。
根据用途不同,您不使用分支来分隔文件。为此,您通常将它们放在不同的目录中。
您可以使用分支将项目状态与需要一些更改的不同项目状态分开。拿一个你已经完成的网站。它有一组用于前端和后端的文件。你有两个分支master
,它运行良好和稳定。现在您决定让主题可定制。这通常需要两组文件中的更改。但是你不想熄灭你网站的当前状态。因此,您创建一个新分支devel
并在新分支上进行更改(在两组文件上)。现在,通过检出master
和devel
,您可以在网站的稳定状态和开发状态之间来回切换。
在同一个存储库中,你不能有一个目录版本分支'master'的,并在同一时间有另一个目录版本分支'dev' **和**都有两个目录签出。您只能检出一个分支,并将删除其他分支的目录。 – j6t
*“现在,当我将文件复制到存储目录中时,这些文件将被添加到两个分支中。”*这是不正确的。我认为你需要再玩一些。 –
@JeffPuckettII通过_added_我的意思是,当我检查是'master'的或''dev'混帐status'那么这两个分支说你有需要提交前要添加不分级的文件。我希望复制的文件仅在dev分支中进行提交。 – user31782