Git - 每个分支的单独文件夹.设置它

Kev*_*ave 10 git directory branch

我需要在3个单独的文件夹中保留3个分支.(我知道这不是做事的一种方式.但我需要这样做是有原因的).

让我们说回购名称是my_proj_repo.git 我创建了一个prodv1在我的本地系统中调用的文件夹:

git clone url:/my_proj_repo.git
Run Code Online (Sandbox Code Playgroud)

现在我进入prodv1文件夹并从服务器复制文件,然后:

git commit -am "initial import"
git push origin master
Run Code Online (Sandbox Code Playgroud)

这推动了文件掌握.现在我在我的本地系统中创建了另外两个文件夹

stagingv1
devv1
Run Code Online (Sandbox Code Playgroud)

我想用名称创建两个本地和远程分支:

staging // this local branch points (push/pull) to staging remote branch
dev     // this local branch points ((push/pull) to dev remote branch
Run Code Online (Sandbox Code Playgroud)

而这两个分支应该在相应的文件夹中:

staging ==> stagingv1 folder
dev     ==> devv1 folder
Run Code Online (Sandbox Code Playgroud)

我尝试了一些东西,我想我搞砸了.有人能指出我的命令/步骤来获得我想要的所有这些设置吗?

我做的是,进入stagingv1文件夹并做了一个git clone <repo>.但它默认为master.我不知道如何在staging这里初始化分支.

Jud*_*het 11

我认为您可能必须在您的仓库中创建所有分支

$ git branch <name_of_your_new_branch>
Run Code Online (Sandbox Code Playgroud)

然后创建所有文件夹,并在每个文件夹中克隆存储库,但签出相应的分支.

每个文件夹应该/可能只跟踪适当的分支

Step 1 $ git branch [name_branch#1]

Step 2 $ git branch [name_branch#2]

Step 3 $ git branch [name_branch#3]
Run Code Online (Sandbox Code Playgroud)

...

Step 4 $ git push --all
Step 5 md Folder #2
Step 6 $ git clone [URL]
Step 7 $ git checkout [name_branch]
Run Code Online (Sandbox Code Playgroud)


Cim*_*ali 7

要实现成为自推出git的2.5简单(甚至是微不足道的)什么混帐worktree命令.

基本上,你的git repo现在有完全免费的签出分支数量,称为工作树:

  • 0(一个简单的回购)
  • 1(正常回购)
  • n> 1,正常的仓库,你添加了n-1个工作树

如果您的回购已经包含您的分支,你可以这样做:
git worktree add <path to branch> <branch name>
或者,如果该分支尚未创建,你想岔开主:
git worktree add -b <new branch name> <path to branch> master

你去吧 请注意,您无法同时签出多个存储库中的分支.