我知道如何在git bash中创建分支:
git branch develop
然后切换到该分支:
git checkout develop
我希望这个特定的分支有它自己的文件夹,并且每次我提交到该分支时,文件夹都会更新。
在Git bash中如何实现这一点?
我知道如何在git bash中创建分支:
git branch develop
然后切换到该分支:
git checkout develop
我希望这个特定的分支有它自己的文件夹,并且每次我提交到该分支时,文件夹都会更新。
在Git bash中如何实现这一点?
最接近的方法是使用"工作树",您可以在此处了解更多信息。
简要描述是,您将拥有一个带有工作文件夹的主存储库,例如您可以在此工作文件夹中检出主分支。
然后,您可以在另一个分支(例如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个存储库。Git checkout -b foldername1/foldername2/your_branch_name
git checkout -b X
会创建一个新的分支,对吧?他不是在谈论通过使用斜杠将分支组织在文件夹中,以便GUI git工具为每个文件夹名称的每个部分创建层次结构,例如将功能/分支分组到它们自己的节点中。他是在谈论同时在磁盘上检出两个分支。 - Lasse V. Karlsen