2013-02-22 43 views
5

मैं 3 अलग फ़ोल्डर में 3 शाखाओं रखने के लिए एक की जरूरत है। (मुझे पता है कि यह चीजों को करने का एक गिट तरीका नहीं है। लेकिन मुझे किसी कारण से ऐसा करने की ज़रूरत है)।गिट - प्रत्येक शाखा के लिए अलग फ़ोल्डर। यह की स्थापना

चलें कहना रेपो नाम my_proj_repo.git मैं एक फ़ोल्डर अपने स्थानीय प्रणाली में prodv1 बुलाया बनाया है है:

git clone url:/my_proj_repo.git 

अब मैं prodv1 फ़ोल्डर में चला गया और एक सर्वर से फ़ाइलों की नकल की है, तो:

git commit -am "initial import" 
git push origin 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 

मैंने कुछ चीजों की कोशिश की और मुझे लगता है कि मैंने इसे गड़बड़ कर दिया। क्या कोई मुझे इस सेटअप को पाने के लिए आदेश/कदम बता सकता है जैसे मैं चाहता था?

मैंने जो किया था, stagingv1 फ़ोल्डर में गया और git clone <repo> किया। लेकिन यह master पर डिफ़ॉल्ट है। और मुझे यकीन नहीं है कि staging शाखा को कैसे प्रारंभ करें।

+4

यह "चीजों को करने का गिट तरीका" कैसे नहीं है? एक नई भंडार नहीं होने पर अलग परियोजनाएं अपनी शाखा होनी चाहिए। अन्यथा एक ही शाखा में विभिन्न परियोजनाएं होने से अन्य परियोजनाओं के इतिहास के साथ अव्यवस्था इतिहास होगा। – NoBugs

उत्तर

8

मुझे लगता है कि आप अपने रेपो में सभी शाखा बनाने के लिए हो सकता है

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

क्या आप कृपया गिट कमांड चरणों को लिख सकते हैं? –

+0

बहुत बढ़िया धन्यवाद! –

+0

@ केविन रेव मैंने कदम लिखा, आपको आदेशों को समायोजित करना पड़ सकता है लेकिन मुझे लगता है कि विचार वहां हैं। – JudgeProphet

2

आप क्या हासिल करना चाहते हैं सरल (या यहां तक ​​कि तुच्छ) Git 2.5 के बाद से बन गया है git worktree शुरू की आदेश।

मूल रूप से, अपने अपने Git रेपो शाखाओं की जाँच की अब पूरी तरह से फ्री नंबर, कहा जाता है काम पेड़ है:

  • 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

ये लीजिए। ध्यान दें कि आप कई रिपॉजिटरीज़ में एक शाखा को चेकआउट नहीं कर सकते हैं।