குளோனிங் துணை அடைவுகள்: ஒரு விரைவான கண்ணோட்டம்
Git உடன் பதிப்புக் கட்டுப்பாட்டை நிர்வகிக்கும் போது, SVN போன்ற பழைய அமைப்புகளுடன் ஒப்பிடும்போது வெவ்வேறு காட்சிகளுக்கு வெவ்வேறு அணுகுமுறைகள் தேவைப்படுகின்றன. குறிப்பாக, ஒரு களஞ்சியத்தின் துணை அடைவுகளைத் தேர்ந்தெடுத்து குளோன் செய்யும் திறன் பல்வேறு வளர்ச்சி பணிப்பாய்வுகளுக்கு முக்கியமானதாக இருக்கும். திட்ட கட்டமைப்புகள் சிக்கலானதாக இருக்கும் போது அல்லது களஞ்சியத்தின் ஒரு பகுதியுடன் நீங்கள் வேலை செய்ய வேண்டியிருக்கும் போது இந்த அம்சம் மிகவும் பயனுள்ளதாக இருக்கும்.
SVN இல், ஒரு களஞ்சியத்திலிருந்து வெவ்வேறு இடங்களுக்கு துணை அடைவுகளை செக் அவுட் செய்வது நேரடியானது. இருப்பினும், Git களஞ்சியத் தரவை வேறுவிதமாகக் கையாளுகிறது, இது 'svn co' போன்ற SVN கட்டளைகளுக்கு நேரடிச் சமமானவற்றைக் குறைவாக வெளிப்படுத்துகிறது. ஸ்பேஸ் செக் அவுட் மற்றும் பிற உத்திகளைப் பயன்படுத்தி Git எவ்வாறு ஒத்த முடிவுகளை அடைய முடியும் என்பதை இந்த வழிகாட்டி ஆராயும்.
| கட்டளை | விளக்கம் |
|---|---|
| git init | ஒரு புதிய Git களஞ்சியத்தை துவக்குகிறது, தேவையான அனைத்து மெட்டாடேட்டாவுடன் ஆரம்ப .git கோப்பகத்தை உருவாக்குகிறது. |
| git remote add -f | உங்கள் Git உள்ளமைவில் புதிய ரிமோட் களஞ்சியத்தைச் சேர்த்து உடனடியாகப் பெறுகிறது. |
| git config core.sparseCheckout true | ஒரு களஞ்சியத்தை பகுதியளவு செக் அவுட் செய்ய அனுமதிக்கும் ஸ்பேர்ஸ்-செக் அவுட் அம்சத்தை இயக்குகிறது. |
| echo "finisht/*" >> .git/info/sparse-checkout | எந்த துணை அடைவை சரிபார்க்க வேண்டும் என்பதை வரையறுக்க, 'finisht/*' பாதையை sparse-checkout configuration கோப்பில் சேர்க்கிறது. |
| git pull origin master | குறிப்பிட்ட துணை அடைவுகளை மட்டும் மீட்டெடுக்க, ஸ்பார்ஸ்-செக்அவுட் விதிகளைப் பயன்படுத்தி, 'ஆரிஜின்' ரிமோட்டில் இருந்து 'மாஸ்டர்' கிளையை இழுக்கிறது. |
| git sparse-checkout set | வேலை செய்யும் கோப்பகத்தில் நிரப்பப்பட வேண்டிய பாதைகளை உள்ளமைக்கிறது. |
Git Sparse Checkout மற்றும் ஸ்கிரிப்ட் பணிப்பாய்வுகளை விளக்குகிறது
வழங்கப்பட்ட ஸ்கிரிப்டுகள் ஒரு Git களஞ்சியத்தில் இருந்து குறிப்பிட்ட துணை அடைவுகளை குளோன் செய்ய வடிவமைக்கப்பட்டுள்ளன, இது SVN உடன் முன்னர் கிடைத்த நடத்தையைப் பிரதிபலிக்கிறது. ஒரு களஞ்சியத்தின் சில பகுதிகள் மட்டுமே தேவைப்படும் சூழல்களில், இது பெறப்பட்ட தரவை கணிசமாகக் குறைத்து, செயல்திறனை மேம்படுத்தும். முதல் ஸ்கிரிப்ட் கலவையைப் பயன்படுத்துகிறது git init, git remote add -f, மற்றும் git config core.sparseCheckout true புதிய Git களஞ்சியத்தை துவக்க, தொலைநிலை மூலத்தைச் சேர்க்க, மற்றும் களஞ்சிய உள்ளடக்கங்களைத் தேர்ந்தெடுத்த குளோனிங்கிற்கு அனுமதிக்கும் ஸ்பேர்ஸ் செக்அவுட்டை இயக்கவும்.
பின்னர், 'ஃபினிஷ்ட்/*' போன்ற பாதைகள் ஸ்பேர்ஸ்-செக் அவுட் உள்ளமைவில் சேர்க்கப்படுகின்றன echo கட்டளைகள், அந்த குறிப்பிட்ட கோப்பகங்களை மட்டுமே பெற Git ஐ இயக்குகிறது. கட்டளை git pull origin master ரிமோட் ரெபோசிட்டரியின் முதன்மை கிளையிலிருந்து உள்ளமைக்கப்பட்ட துணை அடைவுகளை மட்டும் இழுக்கப் பயன்படுகிறது. இரண்டாவது ஸ்கிரிப்ட், தி git sparse-checkout set கட்டளை, சமீபத்திய Git பதிப்புகளில் அறிமுகப்படுத்தப்பட்ட மிகவும் நெறிப்படுத்தப்பட்ட அணுகுமுறை, நேரடியாக அடைவுப் பாதைகளைக் குறிப்பிடுவதை எளிதாக்குகிறது, சரிபார்க்கப்பட்டவற்றின் மீதான தெளிவு மற்றும் கட்டுப்பாட்டை மேம்படுத்துகிறது.
Git களஞ்சியங்களில் குளோனிங்கிற்கான துணை அடைவுகளை தனிமைப்படுத்துதல்
பாஷ் மற்றும் ஜிட் கட்டளைகளைப் பயன்படுத்துதல்
mkdir specific-dir-clonecd specific-dir-clonegit initgit remote add -f origin https://your-repository-url.gitgit config core.sparseCheckout trueecho "finisht/*" >> .git/info/sparse-checkoutgit pull origin mastercd ..mkdir another-specific-dircd another-specific-dirgit initgit remote add -f origin https://your-repository-url.gitgit config core.sparseCheckout trueecho "static/*" >> .git/info/sparse-checkoutgit pull origin master
Git இல் உள்ள துணை அடைவுகளுக்கான ஸ்பார்ஸ் செக்அவுட்டை செயல்படுத்துதல்
Git Sparse-Checkout அம்சத்தைப் பயன்படுத்துதல்
git clone --filter=blob:none --no-checkout https://your-repository-url.git repo-dircd repo-dirgit sparse-checkout init --conegit sparse-checkout set finishtgit checkoutcd ..git clone --filter=blob:none --no-checkout https://your-repository-url.git another-repo-dircd another-repo-dirgit sparse-checkout init --conegit sparse-checkout set staticgit checkout
டைரக்டரி-குறிப்பிட்ட செயல்பாடுகளுக்கான Git இல் மேம்பட்ட நுட்பங்கள்
Git இல் துணை அடைவுகளை குளோனிங் செய்வதற்கான அடிப்படை முறைகளுக்கு கூடுதலாக, பல திட்டங்களுடன் பெரிய களஞ்சியங்களை டெவலப்பர்கள் எவ்வாறு நிர்வகிக்கிறார்கள் என்பதை மேலும் மேம்படுத்தக்கூடிய மேம்பட்ட நுட்பங்கள் உள்ளன. அத்தகைய ஒரு முறையின் பயன்பாட்டை உள்ளடக்கியது git submodule. இந்த கட்டளை ஒரு Git களஞ்சியத்தை மற்ற Git களஞ்சியங்களை துணை தொகுதிகளாக சேர்க்க அனுமதிக்கிறது, அவை பெற்றோருடன் சேர்ந்து குளோன் செய்யப்படலாம் ஆனால் தனித்தனியாக பராமரிக்கப்படும். ஒரு களஞ்சியத்தின் வெவ்வேறு பகுதிகள் பிரிக்கப்பட வேண்டும், ஆனால் ஒரு மையக் களஞ்சியத்திலிருந்து இன்னும் கட்டுப்படுத்தப்படும் போது இது மிகவும் பயனுள்ளதாக இருக்கும்.
மற்றொரு மேம்பட்ட அம்சம் பயன்பாடு ஆகும் git filter-branch உடன் இணைந்த git subtree. இந்த கலவையானது ஒரு துணை அடைவை புதிய, தனி Git களஞ்சியமாக பிரித்தெடுக்க உங்களை அனுமதிக்கிறது. ஒரு திட்டம் அதன் சொந்த நிறுவனமாக வளரும் மற்றும் அதன் வரலாற்று சூழலை இழக்காமல் பிரதான களஞ்சியத்திலிருந்து துண்டிக்கப்பட வேண்டிய சூழ்நிலைகளுக்கு இது சிறந்தது.
அத்தியாவசிய Git துணை அடைவு மேலாண்மை அடிக்கடி கேட்கப்படும் கேள்விகள்
- Git களஞ்சியத்திலிருந்து ஒரு கோப்பகத்தை மட்டும் குளோன் செய்ய முடியுமா?
- ஆம், போன்ற கட்டளைகளைப் பயன்படுத்துதல் git sparse-checkout அல்லது அந்த கோப்பகத்தின் உள்ளடக்கங்களுடன் ஒரு தனி கிளையை உருவாக்குதல்.
- Git இல் ஸ்பேஸ் செக் அவுட் என்றால் என்ன?
- ஸ்பேர்ஸ் செக் அவுட் ஆனது, முழுத் திட்டத்தையும் பதிவிறக்கம் செய்யாமல் ஒரு களஞ்சியத்திலிருந்து குறிப்பிட்ட கோப்புறைகள் அல்லது கோப்புகளைத் தேர்ந்தெடுத்துப் பார்க்க உங்களை அனுமதிக்கிறது.
- துணை அடைவுக்கான துணைத்தொகுதியை எவ்வாறு பயன்படுத்துவது?
- துணைத் தொகுதியைச் சேர்க்கவும் git submodule add விரும்பிய களஞ்சியத்தையும் பாதையையும் சுட்டிக்காட்டுகிறது.
- ஒரு துணை அடைவை புதிய களஞ்சியமாக பிரிக்க முடியுமா?
- ஆம், பயன்படுத்தி git subtree split துணை அடைவு வரலாற்றைக் கொண்ட புதிய கிளையை உருவாக்க, பின்னர் அதை குளோன் செய்யலாம்.
- ஜிட் சப்மட்யூலுக்கும் ஜிட் சப்ட்ரீக்கும் என்ன வித்தியாசம்?
- துணைத்தொகுதிகள் உங்கள் திட்டத்தில் தனித்தனி களஞ்சியங்களை சார்புகளாக இணைக்கின்றன, அதேசமயம் சப்ட்ரீகள் மற்றொரு களஞ்சியத்தை உங்கள் திட்டத்தில் மீண்டும் பிரிக்கும் திறனுடன் இணைக்கின்றன.
Git இல் உள்ள அடைவு-குறிப்பிட்ட குளோனிங் பற்றிய இறுதி எண்ணங்கள்
தனிப்பட்ட கோப்பகங்களுக்கான SVN இன் செக்அவுட்டுக்கு இணையான நேரடி கட்டளையை Git வழங்கவில்லை என்றாலும், ஸ்பேர்ஸ் செக்அவுட், சப்மாட்யூல்கள் மற்றும் சப்ட்ரீ உத்திகள் ஆகியவை வலுவான மாற்றுகளை வழங்குகின்றன. இந்த முறைகள் நகலெடுப்பது மட்டுமல்லாமல், பழைய பதிப்பு கட்டுப்பாட்டு அமைப்புகளால் வழங்கப்பட்ட செயல்பாட்டை மேம்படுத்துகின்றன. டெவலப்பர்கள் SVN இலிருந்து மாறுதல் அல்லது Git க்குள் சிக்கலான திட்டங்களை நிர்வகித்தல், இந்த நுட்பங்களை மாஸ்டரிங் செய்வது அவர்களின் வளர்ச்சி செயல்முறையை கணிசமாக சீரமைக்கும்.