我知道如何使用git bash创建分支
git branch develop
然后切换到该分支
git checkout develop
我希望这个特定的分支拥有它自己的文件夹,并且只要我提交到这个分支,文件夹就会被更新。
如何在Git bash中完成此操作?
答案 0 :(得分:4)
您可以获得的最接近的东西称为“工作树”,您可以阅读有关here的更多信息。
对此的简短描述是,您将拥有一个带有工作文件夹的主存储库,例如,您可以签出该工作文件夹中的master分支。
然后,您还将签出另一个分支(例如,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个存储库。
答案 1 :(得分:0)
Git checkout -b foldername1/foldername2/your_branch_name