அன்ஜிப் செய்யப்பட்ட கோப்புறையை ஜிட் துணைத் தொகுதியாக ஒருங்கிணைத்தல்
Git சப்மாட்யூல்களுடன் பணிபுரியும் போது, களஞ்சியத்திலிருந்து நேரடியாக குளோனிங் செய்வது சாத்தியமில்லாத நேரங்கள் உள்ளன. இது நெட்வொர்க் சிக்கல்கள், களஞ்சிய அணுகல் கட்டுப்பாடுகள் அல்லது பிற சவால்கள் காரணமாக இருக்கலாம்.
இதுபோன்ற சந்தர்ப்பங்களில், தேவையான கோப்புகளை ஜிப் காப்பகமாக பதிவிறக்கம் செய்யலாம். இந்த வழிகாட்டி உங்கள் திட்டத்தில் சீரான ஒருங்கிணைப்பை உறுதிசெய்து, ஜிட் துணைத்தொகுதியாக அன்ஜிப் செய்யப்பட்ட கோப்புறையை எவ்வாறு சேர்ப்பது என்பதைக் காண்பிக்கும்.
| கட்டளை | விளக்கம் |
|---|---|
| git init | குறிப்பிட்ட கோப்பகத்தில் புதிய Git களஞ்சியத்தை துவக்குகிறது. |
| git submodule add | குறிப்பிட்ட பாதையில் உள்ள பிரதான களஞ்சியத்தில் ஒரு புதிய துணைத் தொகுதியைச் சேர்க்கிறது. |
| shutil.copytree | முழு அடைவு மரத்தையும் புதிய இடத்திற்கு நகலெடுக்கிறது. |
| subprocess.run | ஒரு குறிப்பிட்ட கட்டளையை துணை ஷெல்லில் செயல்படுத்துகிறது. |
| cp -r | கோப்புகள் மற்றும் கோப்பகங்களை ஒரு இடத்திலிருந்து மற்றொரு இடத்திற்கு மீண்டும் மீண்டும் நகலெடுக்கிறது. |
| os.chdir | தற்போதைய வேலை கோப்பகத்தை குறிப்பிட்ட பாதைக்கு மாற்றுகிறது. |
அன்ஜிப் செய்யப்பட்ட கோப்புறையை Git துணைத் தொகுதியாக சேர்ப்பதற்கான தீர்வு
வழங்கப்பட்ட ஸ்கிரிப்ட்கள், ஜிட் சப்மாட்யூலாக அன்ஜிப் செய்யப்பட்ட கோப்புறையைச் சேர்ப்பதில் உள்ள சிக்கலைக் குறிப்பிடுகின்றன. முதல் ஸ்கிரிப்ட், ஒரு பாஷ் ஸ்கிரிப்ட், துணைத் தொகுதிக்கு ஒரு கோப்பகத்தை உருவாக்குவதன் மூலம் தொடங்குகிறது mkdir கட்டளை. அதன் பிறகு, அன்ஜிப் செய்யப்பட்ட கோப்புகளை இந்தக் கோப்பகத்தில் நகலெடுக்கிறது cp -r. அடுத்து, இது கோப்பகத்தை Git களஞ்சியமாக துவக்குகிறது git init, எல்லா கோப்புகளையும் சேர்த்து, ஆரம்ப கட்டத்தை உருவாக்குகிறது. ஸ்கிரிப்ட் இந்த கோப்பகத்தை பிரதான களஞ்சியத்தில் துணை தொகுதியாக சேர்க்கிறது git submodule add மற்றும் இந்தக் கூட்டலைச் செய்கிறது.
பைத்தானில் எழுதப்பட்ட இரண்டாவது ஸ்கிரிப்ட், இதேபோன்ற செயல்முறையை தானியங்குபடுத்துகிறது. அன்ஜிப் செய்யப்பட்ட கோப்புறை, துணைத் தொகுதி பாதை மற்றும் பிரதான களஞ்சியத்திற்கான பாதைகளை வரையறுப்பதன் மூலம் இது தொடங்குகிறது. தி shutil.copytree செயல்பாடு அன்ஜிப் செய்யப்பட்ட கோப்புகளை நகலெடுக்கிறது, மற்றும் os.chdir கட்டளை தற்போதைய வேலை கோப்பகத்தை மாற்றுகிறது. ஸ்கிரிப்ட் பயன்படுத்துகிறது subprocess.run போன்ற Git கட்டளைகளை இயக்க git init, git add, மற்றும் git commit களஞ்சியத்தை துவக்க மற்றும் மாற்றங்களைச் செய்ய. இது துணைத் தொகுதியை பிரதான களஞ்சியத்தில் சேர்த்து மாற்றங்களைச் செய்து, துணைத் தொகுதி சரியாக ஒருங்கிணைக்கப்பட்டுள்ளதை உறுதி செய்கிறது.
ஜிட் சப்மாட்யூலாக அன்ஜிப் செய்யப்பட்ட கோப்புறையைச் சேர்த்தல்
ஆட்டோமேஷனுக்காக பாஷ் ஸ்கிரிப்டைப் பயன்படுத்துதல்
# Step 1: Create a new directory for the submodulemkdir pytorch-submodule# Step 2: Copy the unzipped files to the new directorycp -r /path/to/unzipped/pytorch/* pytorch-submodule/# Step 3: Initialize the directory as a Git repositorycd pytorch-submodulegit init# Step 4: Add all files and commitgit add .git commit -m "Initial commit of pytorch submodule"# Step 5: Add the submodule to the main repositorycd /path/to/your/main/repogit submodule add ./pytorch-submodule pytorch# Step 6: Commit the submodule additiongit add .gitmodules pytorchgit commit -m "Add pytorch submodule"
அன்ஜிப் செய்யப்பட்ட கோப்புறையை ஜிட் துணைத் தொகுதியாகப் பயன்படுத்துதல்
செயல்முறையை தானியக்கமாக்க பைதான் ஸ்கிரிப்ட்
import osimport shutilimport subprocess# Step 1: Define pathsunzipped_folder = '/path/to/unzipped/pytorch'submodule_path = '/path/to/your/main/repo/pytorch-submodule'main_repo_path = '/path/to/your/main/repo'# Step 2: Copy the unzipped foldershutil.copytree(unzipped_folder, submodule_path)# Step 3: Initialize the directory as a Git repositoryos.chdir(submodule_path)subprocess.run(['git', 'init'])# Step 4: Add all files and commitsubprocess.run(['git', 'add', '.'])subprocess.run(['git', 'commit', '-m', 'Initial commit of pytorch submodule'])# Step 5: Add the submodule to the main repositoryos.chdir(main_repo_path)subprocess.run(['git', 'submodule', 'add', './pytorch-submodule', 'pytorch'])# Step 6: Commit the submodule additionsubprocess.run(['git', 'add', '.gitmodules', 'pytorch'])subprocess.run(['git', 'commit', '-m', 'Add pytorch submodule'])
Git துணை தொகுதிகளைச் சேர்ப்பதற்கான மாற்று முறை
நீங்கள் பதிவிறக்கம் செய்யப்பட்ட ஜிப் கோப்பை வைத்திருக்கும் போது, துணைத்தொகுதியைச் சேர்ப்பதற்கான மற்றொரு அணுகுமுறை, ஒரு வெற்று களஞ்சியத்தை உருவாக்கி, அதை ஒரு துணைத்தொகுதியாக இணைப்பதாகும். இந்த முறையானது ஒரு புதிய Git களஞ்சியத்தை வெறுமையாக துவக்குவதை உள்ளடக்குகிறது, அதாவது அதில் வேலை செய்யும் அடைவு இல்லை. இந்த வெற்று களஞ்சியத்தை உங்கள் பிரதான களஞ்சியத்தில் துணை தொகுதியாக சேர்க்க நீங்கள் பயன்படுத்தலாம். இந்த முறையின் நன்மை என்னவென்றால், அசல் களஞ்சியத்திலிருந்து குளோன் செய்யாமல், துணைத் தொகுதியின் வரலாறு மற்றும் மெட்டாடேட்டாவைப் பராமரிக்க இது உங்களை அனுமதிக்கிறது.
ஒரு வெற்று களஞ்சியத்தை உருவாக்க, பயன்படுத்தவும் git init --bare கட்டளை. வெறும் களஞ்சியத்தை அமைத்த பிறகு, உங்கள் கோப்புகளைச் சேர்த்து, நிலையான Git களஞ்சியத்தில் நீங்கள் செய்வது போல் அவற்றைச் செய்யுங்கள். பின்னர், இந்த வெற்று களஞ்சியத்தை உங்கள் பிரதான திட்டத்தில் துணை தொகுதியாக இணைக்கவும் git submodule add கட்டளை. பெரிய திட்டங்களுடன் பணிபுரியும் போது அல்லது நேரடி குளோனிங் நடைமுறைக்கு மாறான போது இந்த நுட்பம் பயனுள்ளதாக இருக்கும்.
Git துணைத்தொகுப்புகளைச் சேர்ப்பதற்கான பொதுவான கேள்விகள் மற்றும் பதில்கள்
- வெறும் களஞ்சியத்தை எவ்வாறு துவக்குவது?
- பயன்படுத்த git init --bare ஒரு வெற்று களஞ்சியத்தை துவக்க கட்டளை.
- வெறும் களஞ்சியத்தால் என்ன பயன்?
- ஒரு வெற்று களஞ்சியத்தில் வேலை செய்யும் கோப்பகம் இல்லை மற்றும் பகிர்வு மற்றும் காப்புப்பிரதிகளுக்கு ஏற்றது.
- ஏற்கனவே உள்ள களஞ்சியத்தை வெறும் களஞ்சியமாக மாற்ற முடியுமா?
- ஆம், பயன்படுத்தவும் git clone --bare ஏற்கனவே உள்ள களஞ்சியத்தை வெறுமையாக குளோன் செய்ய கட்டளை.
- வெறும் களஞ்சியத்தில் நான் எவ்வாறு மாற்றங்களைச் செய்வது?
- ஐப் பயன்படுத்தி ஒரு வெற்று களஞ்சியத்தில் மாற்றங்களைச் செய்யுங்கள் git commit அவற்றை அரங்கேற்றிய பின் கட்டளையிடவும்.
- வெறும் களஞ்சியத்தை துணைத் தொகுதியாக இணைப்பது எப்படி?
- பயன்படுத்த git submodule add கட்டளையைத் தொடர்ந்து வெற்று களஞ்சியத்திற்கான பாதை.
- வெறும் களஞ்சியத்தில் இருந்து மாற்றங்களைத் தள்ள முடியுமா?
- ஆம், ஐப் பயன்படுத்தி மாற்றங்களை அழுத்தவும் git push கட்டளை.
- துணைத் தொகுதியைச் சேர்ப்பதில் பிழைகள் ஏற்பட்டால் என்ன செய்வது?
- பாதை மற்றும் களஞ்சிய URL சரியாக இருப்பதையும், களஞ்சியம் சரியாக துவக்கப்பட்டுள்ளதையும் உறுதிசெய்யவும்.
- நான் துணை தொகுதியை அகற்றலாமா?
- ஆம், பயன்படுத்தவும் git submodule deinit மற்றும் git rm துணைத்தொகுதியை அகற்ற கட்டளையிடுகிறது.
- துணைத் தொகுதியை எவ்வாறு புதுப்பிப்பது?
- பயன்படுத்த git submodule update --remote துணைத் தொகுதியைப் புதுப்பிக்க கட்டளை.
செயல்முறையை முடிப்பது
ஒரு அன்ஜிப் செய்யப்பட்ட கோப்புறையை Git submodule ஆக ஒருங்கிணைக்க, துணைத் தொகுதிகளைச் சேர்க்கும் வழக்கமான முறையுடன் ஒப்பிடும்போது சில கூடுதல் படிகள் தேவை. வழங்கப்பட்ட பாஷ் மற்றும் பைதான் ஸ்கிரிப்ட்களைப் பயன்படுத்துவதன் மூலம், நீங்கள் செயல்முறையை தானியங்குபடுத்தலாம் மற்றும் உங்கள் துணைத் தொகுதி சரியாக அமைக்கப்பட்டிருப்பதை உறுதிசெய்யலாம். கூடுதலாக, ஒரு வெற்று களஞ்சியத்தை உருவாக்கும் விருப்பத்தை ஆராய்வது ஒரு நெகிழ்வான மாற்றீட்டை வழங்குகிறது. நீங்கள் நேரடி நகல் அணுகுமுறையை அல்லது வெற்றுக் களஞ்சியத்தைப் பயன்படுத்தத் தேர்வுசெய்தாலும், பதிவிறக்கம் செய்யப்பட்ட கோப்புகளைக் கையாளும் போது துணைத்தொகுதிகளை திறம்பட நிர்வகிக்க இந்த முறைகள் உதவுகின்றன.