Git在新文件夹中创建新分支

4

我知道如何在git bash中创建分支:

git branch develop

然后切换到该分支:

git checkout develop

我希望这个特定的分支有它自己的文件夹,并且每次我提交到该分支时,文件夹都会更新。

在Git bash中如何实现这一点?


1
有单独的代码库... - treyBake
4
这并不是GIT的真正理念。通常情况下,您需要检出一个分支并对其进行提交。如果您想要切换到另一个分支,您就必须先将其检出。 - Lennart Blom
2个回答

11

最接近的方法是使用"工作树",您可以在此处了解更多信息。

简要描述是,您将拥有一个带有工作文件夹的主存储库,例如您可以在此工作文件夹中检出主分支。

然后,您可以在另一个分支(例如develop)中检出到一个单独的工作文件夹中,由同一存储库支持

这样可以让您同时在磁盘上拥有多个分支的“活动”工作文件夹。

但是,没有“当我提交到这个分支时,文件夹就会更新”的情况,相反,您必须在那个文件夹中工作

它基本上看起来像两个不同的克隆,除了它们之间不必推送和拉取,因为只有一个存储库支持这两个文件夹。

以下是如何设置它的简短示例(使用Windows命令语法):

C:\> cd \dev\projects
C:\dev\projects> md MyAwesomeProject
C:\dev\projects> cd MyAwesomeProject
C:\dev\projects\MyAwesomeProject> git clone https://github.com/user/awesome.git master
.... snip

C:\dev\projects\MyAwesomeProject> cd master
C:\dev\projects\MyAwesomeProject\master> git worktree add ..\develop develop
Preparing worktree (checking out 'develop')
HEAD is now at fca4b6c My most recent awesome commit

C:\dev\projects\MyAwesomeProject\master> cd ..
C:\dev\projects\MyAwesomeProject> dir

 Volume in drive C is System
 Volume Serial Number is 1234-5678

 Directory of C:\dev\projects\MyAwesomeProject

02.10.2018  13.43    <DIR>          .
02.10.2018  13.43    <DIR>          ..
09.11.2018  10.26    <DIR>          develop
08.11.2018  09.48    <DIR>          master
               0 File(s)              0 bytes
               4 Dir(s)  229 636 960 256 bytes free
如果您想在"develop"分支工作,请在"develop"文件夹中完成;如果您想在"master"上工作,请在那个文件夹中进行。在一个文件夹提交后,您可以切换到另一个文件夹并将另一个分支合并进来,因为它只是支持两个工作树的1个存储库。

当然可以为分支创建文件夹。 - Carlos ABS

4
Git checkout -b foldername1/foldername2/your_branch_name

2
git checkout -b X 会创建一个新的分支,对吧?他不是在谈论通过使用斜杠将分支组织在文件夹中,以便GUI git工具为每个文件夹名称的每个部分创建层次结构,例如将功能/分支分组到它们自己的节点中。他是在谈论同时在磁盘上检出两个分支。 - Lasse V. Karlsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接