2013-02-22 15 views
5

Mam potrzebę trzymania 3 oddziałów w 3 oddzielnych folderach. (Wiem, że to nie jest zwykły sposób robienia rzeczy, ale muszę to zrobić z jakiegoś powodu).Git - osobny folder dla każdej gałęzi. Konfigurowanie

Powiedzmy nazwa repo jest my_proj_repo.git Stworzyłem folder o nazwie prodv1 w moim systemie lokalnym:

git clone url:/my_proj_repo.git 

Teraz poszłam do prodv1 folderu i skopiowane pliki z serwera, a następnie:

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

Pchnął pliki do wzorca. Teraz stworzyłem dwa kolejne foldery, jak wyżej w moim systemie lokalnym

stagingv1 
devv1 

Chcę utworzyć dwa oddziały lokalne i zdalne z nazwiskami:

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

I te dwie gałęzie powinny być w odpowiedni foldery:

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

Próbowałem kilku rzeczy i chyba go zepsułem. Czy ktoś może wskazać mi polecenia/kroki, aby uzyskać wszystkie ustawienia, tak jak chciałem?

Co zrobiłem, wszedł do folderu stagingv1 i zrobił git clone <repo>. Ale domyślnie jest to master. I nie jestem pewien, jak zainicjować oddział tutaj staging.

+4

Jak to nie jest "gówny sposób robienia rzeczy"? Oddzielne projekty powinny być ich własnymi oddziałami, jeśli nie nowym repozytorium. W przeciwnym razie posiadanie różnych projektów w tej samej branży spowoduje zaśmiecenie historii historią innych projektów. – NoBugs

Odpowiedz

8

myślę, że może trzeba stworzyć cały oddział w swoim repo

$ git branch <name_of_your_new_branch> 

Następnie utwórz wszystkie foldery i w każdym folderze Clone repo ale kasy odpowiednich oddziałów.

Każdy folder powinien/może śledzić tylko odpowiedni oddział

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] 
+0

Czy możesz napisać kroki polecenia git? –

+0

Niesamowite dzięki! –

+0

@KevinRave Napisałem krok, może będziesz musiał dostosować polecenia, ale myślę, że pomysły są. – JudgeProphet

2

Co chcesz osiągnąć stało się prostsze (lub nawet trywialne) od git 2,5 wprowadzono git worktree dowództwo.

Zasadniczo Twój swoją git repo ma teraz całkowicie bezpłatny numer wyrejestrowane oddziały, zwane drzewo praca:

  • 0 (gołe repo)
  • 1 (normalny repo)
  • n> 1, normalny repo gdzie dodano N-1 drzewa pracy

Jeśli repo zawiera już swój oddział, można zrobić:
git worktree add <path to branch> <branch name>
Albo, jeśli oddział nie został jeszcze utworzony i chcesz odgałęzienie Master:
git worktree add -b <new branch name> <path to branch> master

proszę. Pamiętaj, że nie można jednocześnie wykupić oddziału w kilku repozytoriach.

Powiązane problemy