दिलचस्प पोस्ट
windowSoftInputMode = "समायोजित करें रीसाइज़ करें" पारभासी कार्य / नेविबार के साथ काम नहीं कर रहा है जावास्क्रिप्ट में क्रमिकरण? कैसे एक MVC आवेदन में डेटा कैश करने के लिए पायथन में थ्रेडिंग .on ('click') बनाम vs.click () के बीच अंतर। जावास्क्रिप्ट में क्लास कैसे जोड़ / निकालें? सब्लाइम टेक्स्ट 3 के बिल्ड सिस्टम के साथ जारी – चल रहे प्रोग्राम से इनपुट नहीं प्राप्त कर सकते जावास्क्रिप्ट में window.location और document.location के बीच अंतर क्या है? क्या स्ट्रस्ट को गड़बड़ में बदलना चाहिए? पृष्ठभूमि में ऐप करते समय पुश सूचना के साथ बैज अपडेट करें मैं अपने मूल तत्वों को परिवर्तित किए बिना एक तत्व का पाठ कैसे बदल सकता / सकती हूं? मैं एक कुकी कैसे सेट कर सकता हूं और फिर PHP में रीडायरेक्ट कर सकता हूं? एपैंपपेट v7 के साथ संपादन टेक्स्ट नीचे पंक्ति रंग परिवर्तित करना सभी तालिकाएं, संग्रहित प्रक्रियाएं, ट्रिगर, बाधाएं और एक एसक्वेल स्टेटमेंट में सभी निर्भरताएं ड्रॉप करें Promise.all: हल मूल्यों का क्रम

जीआईटी रिपॉजिटरी में जीआईटी रिपॉजिटरी

मेरे पास एक git रिपॉजिटरी है जिसमें जीआईटी रिपॉजिटरी शामिल है I

repo1/ .git/ files repo2/ .git/ files files 

क्या यह वास्तुकला के साथ काम करना संभव है?

वेब के समाधान से एकत्रित समाधान "जीआईटी रिपॉजिटरी में जीआईटी रिपॉजिटरी"

आप नेस्टेड जीआईटी रेपो कर सकते हैं:
माता-पिता रिपो आसानी से होगा नेस्टेड रेपो को अनदेखा करें

jleedev टिप्पणी और इस gist स्क्रिप्ट के साथ वर्णन करता है कि माता-पिता रिपो ने गेटलिंक के माध्यम से नेस्टेड रेपो राज्य को ट्रैक किया होगा।
(gitlink = SHA-1 वस्तु किसी अन्य रिपॉजिटरी में एक प्रतिबद्धता के लिए refering.Git लिंक केवल एसएचए द्वारा या एक प्रतिबद्ध चिह्न के माध्यम से निर्दिष्ट किया जा सकता है।
एक गिटलिंक के पास विशेष मोड ' 160000 ' है, जिसका इस्तेमाल सबडोल्ड के लिए किया जाता है, लेकिन यह भी सरल नेस्टेड रेपो के लिए भी मौजूद है)।

हालांकि, सामान्य आदेश नेस्टेड रेपो को स्वीकार नहीं किया होगा: add या commit केवल एक रेपो में लागू होता है, अन्य नहीं।

जीआईटी सबडोम ने नेस्टेड रिपो को माता-पिता रेपो से संदर्भित करने की अनुमति दी है, और बाल रेपो के सटीक संदर्भ रखता है।

एक अन्य विकल्प शामिल हो सकता है:

  • दो अलग-अलग जीआईटी रेपो (नेस्टेड नहीं)
  • एक से दूसरे के एक विशिष्ट हिस्से के लिए एक सिमलिंक (दोनों यूनिक्स, लेकिन विंडोज विस्टा + सिमुलेशन है)

आप जो पूरा करने का प्रयास कर रहे हैं उसे "सबमिशन" कहा जाता है, कृपया यह लिंक देखें: http://git-scm.com/book/en/v2/Git-Tools-Submodules यह जानने के लिए कि यह कैसा काम कर रहा है।

मैंने उस संरचना को थोड़ी देर के लिए उपयोग किया है, बाहरी रिपो में। गइटिग्नर में निर्दिष्ट उप-रेपो निर्देशिका के साथ।

यह मेरे संपादक (पीएचपीस्टॉर्म) में जीआईटी उपकरण को भ्रमित करता है, जो हमेशा बाहरी रेपो में काम करना चाहता है, लेकिन अन्यथा ठीक काम करता है। मैं संपूर्ण बाहरी रेपो लोड करता है (जिसमें सभी आंतरिक रिपो शामिल हैं) संपादक में एक ही परियोजना के रूप में। इससे मुझे बाहरी रेपो में आसानी से खोज और कोड की जांच करनी पड़ती है जबकि एक आंतरिक काम पर काम करते हैं।

मैं जो भी रेपो में काम कर रहा हूं, जीआईटी बैश से सभी जीआईटी ऑपरेशन कर रहा हूं।

उपमॉड्यूल एक बेहतर दृष्टिकोण हो सकता है मेरे पास जांच करने का समय नहीं है कि क्या वे PhpStorm के साथ बेहतर काम करेंगे।

हां, आप इस पैटर्न का उपयोग कर सकते हैं। मैंने इसे अतीत में एसवीएन बाहरी रूप से एक git-svn क्लोन में लाने के लिए उपयोग किया है। उपमॉड्यूल अब इस बेहतर को संभाल सकते हैं, लेकिन समय पर मेरी आवश्यकताओं के अनुरूप नहीं थे।

आप repo1 / .git / info / exclude में निम्नलिखित को जोड़ना चाहते हैं ताकि यह सुनिश्चित किया जा सके कि repo2 में बदलाव repo1 के साथ मिलाएं नहीं:

 repo2 

मुझे आश्चर्य है कि इस धागे पर कोई पैकेज प्रबंधन समाधान नहीं बताएगा।

यह सच है कि git submodules आपको आपके द्वारा वर्णित आर्किटेक्चर के साथ विकसित करने की अनुमति देगा, जीआईटी सब-ट्री एक समान समाधान प्रदान करते हैं जो बहुत से लोग पसंद करते हैं।

मेरी राय में, पैकेज प्रबंधन सॉफ्टवेयर किसी भी जटिल परियोजना का एक अभिन्न हिस्सा है। मुझे संगीतकार पसंद है क्योंकि यह सहज वर्कफ़्लो का समर्थन करता है: https://getcomposer.org/

दुर्भाग्य से git submodules PHPstorm द्वारा समर्थित नहीं हैं: http://youtrack.jetbrains.com/issue/IDEA-64024

मैं ऊपर रोनाल्ड विलियम्स से भी सहमत हूँ Git-submodules का मुख्य उद्देश्य अद्यतन करने के लिए बिना बाहर की दुनिया के कोड को अद्यतन करना है, यदि उस कोड को अद्यतन द्वारा संशोधित किया गया था। वही संगीतकार पैकेज प्रबंधन प्रणाली करता है असल में वे उन परिवर्तनों को भी करने की सलाह नहीं देते हैं और प्रोजेक्ट की जड़ में .gitignore में विक्रेता फ़ोल्डर को अनदेखा करते हैं। यह एक दुःस्वप्न है यदि आप इस फ़ोल्डर को करने की कोशिश करेंगे क्योंकि कुछ विक्रेता / some_repo dev संस्करण का हो सकता है, परिणामस्वरूप उनके पास गिट फ़ोल्डर है जो इन सभी संकुलों के परिणामस्वरूप submodules बन जाते हैं भले ही आप उन्हें git submodule add यदि आप नेस्टेड .git रिपॉजिटरी में कुछ_फाइल को संशोधित करते हैं, तो आप ऐसा कुछ देख सकते हैं:

 ~/project_root $ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # (commit or discard the untracked or modified content in submodules) # # modified: vendor/nested_repo (modified content) 

संशोधित सामग्री को प्रविष्टि में दर्ज करें और आपको आउटपुट में some_file नाम दिखाई नहीं देता है। इसके बजाय आप देख सकते हैं (संशोधित सामग्री) सूचना क्योंकि root_project .git विक्रेता / नेस्टेड_प्रो को एक सबलोड के रूप में देखता है और उस फ़ोल्डर में व्यक्तिगत फ़ाइलों को ट्रैक नहीं करता है

यदि आप जीआईटी को जोड़ते हैं तो – आपको कोई भी परिणाम नहीं मिलेगा जब तक आप विक्रेता / नेस्टेड_प्रे में बदलाव नहीं करते हैं और उसके बाद ही आप रूट रिपॉजिटरी में बदलाव कर सकते हैं।

ऐसा मत करो इसके बजाय, अगर आप अपनी परियोजना को पूरी तरह से रखना चाहते हैं .जिट रिपॉजिटरी (किसी भी, न केवल कम्पोज़र निर्मित रिपॉजिटरी), जो कि कभी-कभी बहुत सुविधाजनक हो, रूट में इस प्रविष्टि को जोड़ दें। गिटग्नोर प्रारंभिक प्रतिबद्धता से पहले :

 .git !/.git 

दुर्भाग्य से, पूरे नुस्खा के लिए आपको प्रत्येक नेस्टेड रिपो के लिए git add कमांड को चलाने की आवश्यकता है जिसे आप बाद में व्यक्तिगत रूप से संशोधित करना चाहते हैं। ध्यान दें कि रेपो के रास्ते में स्लैश का अनुसरण करना जरूरी है

 ~/project_root $ git add vendor/some_repo/ vendor/another_repo/ 

फिर विक्रेता / some_repo में some_file संशोधित करें और अंतर देखें:

 ~/project_root $ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: vendor/some_repo/some_file 

इस तरह आप git add --all सकते git add --all और फिर git commit "Changes ..." को हमेशा की तरह project_root में git commit "Changes ..."