Git-отдельная папка для каждой ветви. Настройка

мне нужно сохранить 3 ветки в 3 отдельных папках. (Я знаю, что это не git способ делать вещи. Но мне нужно сделать это не просто так).

допустим, имя РЕПО my_proj_repo.git Я создал папку под названием prodv1 в моей локальной системы:

git clone url:/my_proj_repo.git

теперь я вошел в prodv1 папка и скопированные файлы с сервера, а затем:

git commit -am "initial import"
git push origin master

это подтолкнуло файлы к master. Теперь я создал еще две папки, как указано выше, в моем локальном система

stagingv1
devv1

я хочу создать две локальные и удаленные ветви с именами:

staging // this local branch points (push/pull) to staging remote branch
dev     // this local branch points ((push/pull) to dev remote branch

и эти две ветви должны быть в соответствующие папки:

staging ==> stagingv1 folder
dev     ==> devv1 folder

я попробовал несколько вещей,и я думаю, что я испортил его. Может ли кто-нибудь указать мне команды/шаги, чтобы получить всю эту настройку, как я хотел?

что я сделал, так это вошел в и не git clone <repo>. Но по умолчанию это master. И я не уверен, как инициализировать staging филиала здесь.

2 ответов


Я думаю, что вам, возможно, придется создать всю ветку в вашем РЕПО

$ git branch <name_of_your_new_branch>

затем создайте все свои папки и в каждой из ваших папок клонируйте РЕПО, Но Проверьте соответствующие ветви.

каждая папка должна / может отслеживать только соответствующую ветку

Step 1 $ git branch [name_branch#1]

Step 2 $ git branch [name_branch#2]

Step 3 $ git branch [name_branch#3]

...

Step 4 $ git push --all
Step 5 md Folder #2
Step 6 $ git clone [URL]
Step 7 $ git checkout [name_branch]

то, что вы хотите достичь, стало проще (или даже тривиально), так как git 2.5 ввел git worktree.

в основном, ваш git repo теперь имеет совершенно бесплатное количество проверенных ветвей, называемых деревом работы:

  • 0 (голой РЕПО)
  • 1 (США)
  • n > 1, обычное РЕПО, где вы добавили N-1 рабочих деревьев

Если ваше РЕПО уже содержит вашу ветку, вы можете do:
git worktree add <path to branch> <branch name>
Или, если эта ветвь еще не создана, и вы хотите отделить master:
git worktree add -b <new branch name> <path to branch> master

там вы идете. Обратите внимание, что вы не можете одновременно проверять ветку в нескольких репозиториях.