ஒரு அறிமுகத்திற்கு பதிலாக
வணக்கம்! இன்று நாம் ஒரு பதிப்பு கட்டுப்பாட்டு அமைப்பு பற்றி பேச போகிறோம், அதாவது Git.
ஜிட் அடிப்படைகள்
Git என்பது எங்கள் குறியீட்டிற்கான விநியோகிக்கப்பட்ட பதிப்பு கட்டுப்பாட்டு அமைப்பு. நமக்கு அது ஏன் தேவை? விநியோகிக்கப்பட்ட குழுக்கள் தங்கள் வேலையை நிர்வகிப்பதற்கு ஒருவித அமைப்பு தேவை. காலப்போக்கில் ஏற்படும் மாற்றங்களைக் கண்காணிப்பது அவசியம். அதாவது, எந்தெந்த கோப்புகள் எவ்வாறு மாறியுள்ளன என்பதை நாம் படிப்படியாகப் பார்க்க வேண்டும். ஒரு பணியின் சூழலில் என்ன மாற்றம் ஏற்பட்டது என்பதை நீங்கள் ஆராயும்போது இது மிகவும் முக்கியமானது, மாற்றங்களை மாற்றியமைப்பதை சாத்தியமாக்குகிறது.Git ஐ நிறுவுகிறது
உங்கள் கணினியில் ஜாவாவை நிறுவுவோம்.விண்டோஸில் நிறுவுதல்
வழக்கம் போல், நீங்கள் ஒரு exe கோப்பை பதிவிறக்கம் செய்து இயக்க வேண்டும். இங்கே எல்லாம் எளிது: முதல் Google இணைப்பைக் கிளிக் செய்து , நிறுவலைச் செய்யுங்கள், அவ்வளவுதான். இதைச் செய்ய, விண்டோஸ் வழங்கும் பாஷ் கன்சோலைப் பயன்படுத்துவோம். விண்டோஸில், நீங்கள் Git Bash ஐ இயக்க வேண்டும். தொடக்க மெனுவில் இது எப்படி இருக்கும் என்பது இங்கே:

லினக்ஸில் நிறுவுகிறது
வழக்கமாக Git லினக்ஸ் விநியோகங்களின் ஒரு பகுதியாகும் மற்றும் ஏற்கனவே நிறுவப்பட்டுள்ளது, ஏனெனில் இது முதலில் லினக்ஸ் கர்னல் மேம்பாட்டிற்காக எழுதப்பட்ட ஒரு கருவியாகும். ஆனால் அது இல்லாத சூழ்நிலைகள் உள்ளன. சரிபார்க்க, நீங்கள் ஒரு முனையத்தைத் திறந்து எழுத வேண்டும்: git --version. நீங்கள் புரிந்துகொள்ளக்கூடிய பதிலைப் பெற்றால், எதையும் நிறுவ வேண்டியதில்லை. ஒரு முனையத்தைத் திறந்து உபுண்டுவில் Git ஐ நிறுவவும் . நான் உபுண்டுவில் பணிபுரிகிறேன், அதனால் இதற்கு என்ன எழுத வேண்டும் என்பதை நான் உங்களுக்குச் சொல்ல முடியும்: sudo apt-get install git.MacOS இல் நிறுவுகிறது
இங்கேயும், நீங்கள் முதலில் Git ஏற்கனவே உள்ளதா என்பதைச் சரிபார்க்க வேண்டும். உங்களிடம் அது இல்லையென்றால், அதைப் பெறுவதற்கான எளிதான வழி, சமீபத்திய பதிப்பை இங்கே பதிவிறக்குவதுதான் . Xcode நிறுவப்பட்டிருந்தால், Git நிச்சயமாக தானாகவே நிறுவப்படும்.Git அமைப்புகள்
வேலையைச் சமர்ப்பிக்கும் பயனருக்கான பயனர் அமைப்புகளை Git கொண்டுள்ளது. இது அர்த்தமுள்ளதாக இருக்கிறது மற்றும் அவசியமானது, ஏனென்றால் ஒரு உறுதி உருவாக்கப்படும் போது, Git இந்தத் தகவலை ஆசிரியர் புலத்திற்கு எடுத்துக்கொள்கிறது. பின்வரும் கட்டளைகளை இயக்குவதன் மூலம் உங்கள் எல்லா திட்டங்களுக்கும் பயனர்பெயர் மற்றும் கடவுச்சொல்லை அமைக்கவும்:
git config --global user.name "Ivan Ivanov"
git config --global user.email ivan.ivanov@gmail.com
ஒரு குறிப்பிட்ட திட்டத்திற்கான ஆசிரியரை நீங்கள் மாற்ற வேண்டும் என்றால், நீங்கள் "--global" ஐ அகற்றலாம். இது நமக்கு பின்வருவனவற்றை வழங்கும்:
git config user.name "Ivan Ivanov"
git config user.email ivan.ivanov@gmail.com
கொஞ்சம் கோட்பாடு...
தலைப்பில் முழுக்க, சில புதிய வார்த்தைகள் மற்றும் செயல்களை நாங்கள் உங்களுக்கு அறிமுகப்படுத்த வேண்டும்...- git களஞ்சியம்
- உறுதி
- கிளை
- ஒன்றிணைக்க
- மோதல்கள்
- இழுக்க
- தள்ளு
- சில கோப்புகளை எவ்வாறு புறக்கணிப்பது (.gitignore)
Git இல் நிலைகள்
Git பல சிலைகளைக் கொண்டுள்ளது, அவை புரிந்து கொள்ளப்பட வேண்டும் மற்றும் நினைவில் கொள்ள வேண்டும்:- கண்காணிக்கப்படவில்லை
- மாற்றியமைக்கப்பட்டது
- அரங்கேற்றப்பட்டது
- உறுதி
இதை நீங்கள் எப்படி புரிந்து கொள்ள வேண்டும்?
இவை எங்கள் குறியீட்டைக் கொண்ட கோப்புகளுக்குப் பொருந்தும் நிலைகள்:- உருவாக்கப்பட்ட ஆனால் இன்னும் களஞ்சியத்தில் சேர்க்கப்படாத கோப்பு "கண்காணிக்கப்படாத" நிலையைக் கொண்டுள்ளது.
- Git களஞ்சியத்தில் ஏற்கனவே சேர்க்கப்பட்ட கோப்புகளில் நாம் மாற்றங்களைச் செய்யும்போது, அவற்றின் நிலை "மாற்றியமைக்கப்படும்".
- நாங்கள் மாற்றிய கோப்புகளில், நமக்குத் தேவையானவற்றைத் தேர்ந்தெடுக்கிறோம், மேலும் இந்த வகுப்புகள் "நிலை" நிலைக்கு மாற்றப்படுகின்றன.
- ஸ்டேஜ் செய்யப்பட்ட நிலையில் தயாரிக்கப்பட்ட கோப்புகளிலிருந்து ஒரு உறுதி உருவாக்கப்பட்டு Git களஞ்சியத்திற்குச் செல்கிறது. அதன் பிறகு, "நிலை" நிலை கொண்ட கோப்புகள் எதுவும் இல்லை. ஆனால் "மாற்றியமைக்கப்பட்ட" கோப்புகள் இன்னும் இருக்கலாம்.

உறுதி என்றால் என்ன?
பதிப்பு கட்டுப்பாட்டுக்கு வரும்போது ஒரு உறுதிப்பாடு முக்கிய நிகழ்வாகும். கமிட் தொடங்கியதிலிருந்து செய்யப்பட்ட அனைத்து மாற்றங்களும் இதில் உள்ளன. தனித்தனியாக இணைக்கப்பட்ட பட்டியலைப் போல உறுதிமொழிகள் ஒன்றாக இணைக்கப்பட்டுள்ளன. இன்னும் குறிப்பாக: முதல் உறுதி உள்ளது. இரண்டாவது கமிட் உருவாக்கப்படும் போது, அது முதல் பிறகு என்ன வரும் என்று தெரியும். இந்த முறையில், தகவல்களைக் கண்காணிக்க முடியும். ஒரு கமிட் அதன் சொந்த தகவல்களையும் கொண்டுள்ளது, மெட்டாடேட்டா என அழைக்கப்படும்:- உறுதியின் தனித்துவமான அடையாளங்காட்டி, அதைக் கண்டுபிடிக்கப் பயன்படுத்தலாம்
- அதை உருவாக்கிய கமிட்டியின் ஆசிரியரின் பெயர்
- உறுதி உருவாக்கப்பட்ட தேதி
- உறுதிமொழியின் போது என்ன செய்யப்பட்டது என்பதை விவரிக்கும் கருத்து

கிளை என்றால் என்ன?
ஒரு கிளை என்பது சில உறுதிமொழிகளுக்கு ஒரு சுட்டி. ஒரு கமிட் அதற்கு முந்திய கமிட் என்பதை அறிந்திருப்பதால், ஒரு கிளை ஒரு உறுதிப்பாட்டை சுட்டிக்காட்டும்போது, அந்த முந்தைய கமிட்கள் அனைத்தும் அதற்கும் பொருந்தும். அதன்படி, ஒரே உறுதிப்பாட்டைச் சுட்டிக்காட்டி நீங்கள் எத்தனை கிளைகளை வேண்டுமானாலும் வைத்திருக்கலாம் என்று நாங்கள் கூறலாம். கிளைகளில் வேலை நடக்கிறது, எனவே ஒரு புதிய உறுதி உருவாக்கப்படும் போது, கிளை அதன் சுட்டியை மிக சமீபத்திய உறுதிக்கு நகர்த்துகிறது.Git உடன் தொடங்குதல்
நீங்கள் ஒரு உள்ளூர் களஞ்சியத்துடன் தனியாகவும், தொலைநிலையுடனும் வேலை செய்யலாம். தேவையான கட்டளைகளைப் பயிற்சி செய்ய, நீங்கள் உங்களை உள்ளூர் களஞ்சியத்திற்கு வரம்பிடலாம். இது .git கோப்புறையில் மட்டுமே திட்டப்பணியின் அனைத்து தகவல்களையும் உள்நாட்டில் சேமிக்கிறது. ரிமோட் களஞ்சியத்தைப் பற்றி நாங்கள் பேசுகிறோம் என்றால், எல்லா தகவல்களும் தொலை சேவையகத்தில் எங்காவது சேமிக்கப்படும்: திட்டத்தின் நகல் மட்டுமே உள்நாட்டில் சேமிக்கப்படும். உங்கள் உள்ளூர் நகலில் செய்யப்பட்ட மாற்றங்கள் ரிமோட் களஞ்சியத்திற்கு (ஜிட் புஷ்) தள்ளப்படும். இங்கே மற்றும் கீழே எங்கள் விவாதத்தில், கன்சோலில் Git உடன் பணிபுரிவது பற்றி பேசுகிறோம். நிச்சயமாக, நீங்கள் சில வகையான GUI- அடிப்படையிலான தீர்வைப் பயன்படுத்தலாம் (எடுத்துக்காட்டாக, IntelliJ IDEA), ஆனால் முதலில் நீங்கள் என்ன கட்டளைகள் செயல்படுத்தப்படுகின்றன மற்றும் அவை எதைக் குறிக்கின்றன என்பதைக் கண்டுபிடிக்க வேண்டும்.உள்ளூர் களஞ்சியத்தில் Git உடன் பணிபுரிதல்
அடுத்து, நீங்கள் கட்டுரையைப் படிக்கும்போது நான் செய்த அனைத்து நடவடிக்கைகளையும் பின்பற்றிச் செய்யுமாறு பரிந்துரைக்கிறேன். இது பொருள் பற்றிய உங்கள் புரிதலையும் தேர்ச்சியையும் மேம்படுத்தும். சரி, பான் ஆப்பெடிட்! :) உள்ளூர் களஞ்சியத்தை உருவாக்க, நீங்கள் எழுத வேண்டும்:
git init

git status

- git add -A — அனைத்து கோப்புகளையும் "நிலை" நிலைக்குச் சேர்க்கவும்
- git சேர். — இந்தக் கோப்புறையிலிருந்து அனைத்து கோப்புகளையும் அனைத்து துணை கோப்புறைகளையும் சேர்க்கவும். அடிப்படையில், இது முந்தையதைப் போன்றது
- git add <file name> — ஒரு குறிப்பிட்ட கோப்பை சேர்க்கிறது. சில வடிவங்களின்படி கோப்புகளைச் சேர்க்க இங்கே நீங்கள் வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தலாம். எடுத்துக்காட்டாக, git add *.java: அதாவது நீங்கள் ஜாவா நீட்டிப்புடன் கோப்புகளை மட்டுமே சேர்க்க விரும்புகிறீர்கள்.
git add *.txt
நிலையைச் சரிபார்க்க, ஏற்கனவே எங்களுக்குத் தெரிந்த கட்டளையைப் பயன்படுத்துகிறோம்:
git status

git commit -m "all txt files were added to the project"

git log

git status

git status

git diff

git add test_resource.txt
git commit -m "added hello word! to test_resource.txt"
அனைத்து கடமைகளையும் பார்க்க, எழுதுங்கள்:
git log

git add GitTest.java
git commit -m "added GitTest.java"
git status

.gitignore உடன் பணிபுரிகிறது
தெளிவாக, நாங்கள் மூலக் குறியீட்டை மட்டுமே வைத்திருக்க விரும்புகிறோம், வேறு எதுவும் களஞ்சியத்தில் இல்லை. எனவே வேறு என்ன இருக்க முடியும்? குறைந்தபட்சம், தொகுக்கப்பட்ட வகுப்புகள் மற்றும்/அல்லது மேம்பாட்டு சூழல்களால் உருவாக்கப்பட்ட கோப்புகள். Git அவர்களைப் புறக்கணிக்கச் சொல்ல, நாம் ஒரு சிறப்பு கோப்பை உருவாக்க வேண்டும். இதைச் செய்யுங்கள்: திட்டத்தின் ரூட்டில் .gitignore என்ற கோப்பை உருவாக்கவும். இந்தக் கோப்பில் உள்ள ஒவ்வொரு வரியும் புறக்கணிக்க வேண்டிய வடிவத்தைக் குறிக்கிறது. இந்த எடுத்துக்காட்டில், .gitignore கோப்பு இப்படி இருக்கும்:
```
*.class
target/
*.iml
.idea/
```
பார்ப்போம்:
- முதல் வரி .class நீட்டிப்புடன் அனைத்து கோப்புகளையும் புறக்கணிக்க வேண்டும்
- இரண்டாவது வரி "இலக்கு" கோப்புறை மற்றும் அதில் உள்ள அனைத்தையும் புறக்கணிக்க வேண்டும்
- மூன்றாவது வரி .iml நீட்டிப்புடன் அனைத்து கோப்புகளையும் புறக்கணிக்க வேண்டும்
- நான்காவது வரி .idea கோப்புறையை புறக்கணிக்க வேண்டும்
git status


git add .gitignore
git commit -m "added .gitignore file"
இப்போது உண்மையின் தருணம்: எங்களிடம் ஒரு தொகுக்கப்பட்ட GitTest.class உள்ளது, அது "கண்காணிக்கப்படாதது", அதை நாங்கள் Git களஞ்சியத்தில் சேர்க்க விரும்பவில்லை. இப்போது நாம் .gitignore கோப்பின் விளைவுகளைப் பார்க்க வேண்டும்:
git status

கிளைகள் மற்றும் பலவற்றுடன் பணிபுரிதல்
இயற்கையாகவே, ஒரு கிளையில் பணிபுரிவது தனிமையான டெவலப்பர்களுக்கு சிரமமாக இருக்கும், மேலும் ஒரு குழுவில் ஒன்றுக்கு மேற்பட்ட நபர்கள் இருக்கும்போது அது சாத்தியமற்றது. இதற்காகத்தான் எங்களிடம் கிளைகள் உள்ளன. நான் முன்பு கூறியது போல், ஒரு கிளை என்பது உறுதிப்பாட்டிற்கு நகரக்கூடிய ஒரு சுட்டி. இந்த பகுதியில், வெவ்வேறு கிளைகளில் வேலை செய்வதை ஆராய்வோம்: ஒரு கிளையிலிருந்து மற்றொரு கிளையில் மாற்றங்களை எவ்வாறு இணைப்பது, என்ன முரண்பாடுகள் ஏற்படலாம் மற்றும் பல. களஞ்சியத்தில் உள்ள அனைத்து கிளைகளின் பட்டியலைப் பார்க்கவும், நீங்கள் எதைப் பயன்படுத்துகிறீர்கள் என்பதைப் புரிந்து கொள்ளவும், நீங்கள் எழுத வேண்டும்:
git branch -a

- நாம் இருக்கும் கிளையின் அடிப்படையில் ஒரு புதிய கிளையை உருவாக்கவும் (99% வழக்குகள்)
- ஒரு குறிப்பிட்ட உறுதியின் அடிப்படையில் ஒரு கிளையை உருவாக்கவும் (1% வழக்குகள்)
ஒரு குறிப்பிட்ட உறுதியின் அடிப்படையில் ஒரு கிளையை உருவாக்குவோம்
உறுதிமொழியின் தனித்துவமான அடையாளங்காட்டியை நாங்கள் நம்புவோம். அதைக் கண்டுபிடிக்க, நாங்கள் எழுதுகிறோம்:
git log

git checkout -b development 6c44e53d06228f888f2f454d3cb8c1c976dd73f8
முதன்மைக் கிளையிலிருந்து முதல் இரண்டு கமிட்களை மட்டுமே கொண்டு ஒரு கிளை உருவாக்கப்பட்டது. இதைச் சரிபார்க்க, நாங்கள் முதலில் வேறு கிளைக்கு மாறுவதை உறுதிசெய்து, அங்குள்ள கமிட்களின் எண்ணிக்கையைப் பார்க்கிறோம்:
git status
git log

git branch -a

தற்போதுள்ள கிளையின் அடிப்படையில் ஒரு கிளையை உருவாக்குவோம்
ஒரு கிளையை உருவாக்குவதற்கான இரண்டாவது வழி, அதை மற்றொன்றிலிருந்து உருவாக்குவது. மாஸ்டர் கிளையின் அடிப்படையில் ஒரு கிளையை உருவாக்க விரும்புகிறேன். முதலில், நான் அதற்கு மாற வேண்டும், அடுத்த படி புதிய ஒன்றை உருவாக்க வேண்டும். பார்ப்போம்:- git Checkout master — முதன்மை கிளைக்கு மாறவும்
- git நிலை - நாங்கள் உண்மையில் முதன்மைக் கிளையில் இருக்கிறோம் என்பதைச் சரிபார்க்கவும்

git checkout -b feature/update-txt-files

சச்சரவுக்கான தீர்வு
மோதல் என்றால் என்ன என்பதை ஆராய்வதற்கு முன், ஒரு கிளையை மற்றொரு கிளையுடன் இணைப்பது பற்றி பேச வேண்டும். இந்த படம் ஒரு கிளையை மற்றொன்றில் இணைக்கும் செயல்முறையை சித்தரிக்கிறது:

git add *.txt
git commit -m "updated txt files"
git log

git checkout master
git merge feature/update-txt-files
git log

git branch -D feature/update-txt-files
இதுவரை எல்லாம் தெளிவாக உள்ளது, ஆம்? நிலைமையை சிக்கலாக்குவோம்: இப்போது நீங்கள் txt கோப்பை மீண்டும் மாற்ற வேண்டும் என்று சொல்லலாம். ஆனால் இப்போது இந்த கோப்பு மாஸ்டர் கிளையிலும் மாற்றப்படும். வேறு வார்த்தைகளில் கூறுவதானால், அது இணையாக மாறும். எங்கள் புதிய குறியீட்டை முதன்மைக் கிளையில் இணைக்க விரும்பினால் என்ன செய்வது என்று Git ஆல் கண்டுபிடிக்க முடியாது. போகலாம்! மாஸ்டரின் அடிப்படையில் ஒரு புதிய கிளையை உருவாக்குவோம், text_resource.txt இல் மாற்றங்களைச் செய்வோம், மேலும் இந்த வேலைக்கான உறுதிப்பாட்டை உருவாக்குவோம்:
git checkout -b feature/add-header
... we make changes to the file

git add *.txt
git commit -m "added header to txt"

git checkout master
… we updated test_resource.txt

git add test_resource.txt
git commit -m "added master header to txt"
இப்போது மிகவும் சுவாரஸ்யமான விஷயம்: அம்சம்/சேர்-தலைப்புக் கிளையிலிருந்து மாஸ்டருக்கு மாற்றங்களை ஒன்றிணைக்க வேண்டும். நாங்கள் முதன்மைக் கிளையில் இருக்கிறோம், எனவே நாம் மட்டும் எழுத வேண்டும்:
git merge feature/add-header
ஆனால் இதன் விளைவாக test_resource.txt கோப்பில் ஒரு முரண்பாடாக இருக்கும்: 

- முதன்மைக் கிளையில் இந்த வரியில் இருந்த மாற்றங்கள் "<<<<<<< HEAD" மற்றும் "=======" இடையே காணப்படுகின்றன.
- அம்சம்/சேர்ப்பு-தலைப்புக் கிளையில் இருந்த மாற்றங்கள் "========" மற்றும் ">>>>>>> அம்சம்/சேர்-தலைப்பு" இடையே காணப்படுகின்றன.

git status

git add *.txt

git commit

தொலை களஞ்சியங்களுடன் பணிபுரிதல்
ரிமோட் களஞ்சியத்துடன் பணிபுரியத் தேவையான இன்னும் சில கட்டளைகளைக் கண்டுபிடிப்பதே கடைசிப் படியாகும். நான் சொன்னது போல், ரிமோட் ரெபோசிட்டரி என்பது களஞ்சியம் சேமிக்கப்படும் சில இடமாகும், அதில் இருந்து நீங்கள் அதை குளோன் செய்யலாம். என்ன வகையான ரிமோட் களஞ்சியங்கள் உள்ளன? எடுத்துக்காட்டுகள்:-
கிட்ஹப் என்பது களஞ்சியங்கள் மற்றும் கூட்டு மேம்பாட்டிற்கான மிகப்பெரிய சேமிப்பக தளமாகும். நான் ஏற்கனவே முந்தைய கட்டுரைகளில் விவரித்தேன். GitHub
இல் என்னைப் பின்தொடரவும் . நான் வேலைக்காகப் படிக்கும் பகுதிகளில் அடிக்கடி என் வேலையைக் காட்டுவேன். -
கிட்லேப் என்பது டெவொப்ஸ் வாழ்க்கைச் சுழற்சிக்கான இணைய அடிப்படையிலான கருவியாகும் . இது அதன் சொந்த விக்கி, பிழை கண்காணிப்பு அமைப்பு , CI/CD பைப்லைன் மற்றும் பிற செயல்பாடுகளுடன் குறியீடு களஞ்சியங்களை நிர்வகிப்பதற்கான Git- அடிப்படையிலான அமைப்பாகும். மைக்ரோசாப்ட் கிட்ஹப்பை வாங்கிய செய்திக்குப் பிறகு, சில டெவலப்பர்கள் தங்கள் திட்டங்களை கிட்லாப்பில் நகலெடுத்தனர்.
-
BitBucket என்பது Mercurial மற்றும் Git பதிப்பு கட்டுப்பாட்டு அமைப்புகளின் அடிப்படையில் திட்ட ஹோஸ்டிங் மற்றும் கூட்டு மேம்பாட்டிற்கான ஒரு வலை சேவையாகும். ஒரு காலத்தில் இது இலவச தனியார் களஞ்சியங்களை வழங்கியதில் GitHub ஐ விட ஒரு பெரிய நன்மையைக் கொண்டிருந்தது. கடந்த ஆண்டு, GitHub இந்த திறனை அனைவருக்கும் இலவசமாக அறிமுகப்படுத்தியது.
-
மற்றும் பல…
git clone https://github.com/romankh3/git-demo
இப்போது திட்டத்தின் முழுமையான உள்ளூர் நகல் உள்ளது. திட்டப்பணியின் உள்ளூர் நகல் சமீபத்தியது என்பதை உறுதிசெய்ய, நீங்கள் எழுதி திட்டத்தை இழுக்க வேண்டும்:
git pull


git add test_resource.txt
git commit -m "prepared txt for pushing"
இதை தொலை களஞ்சியத்திற்கு தள்ளுவதற்கான கட்டளை:
git push

பயனுள்ள இணைப்பு
- அதிகாரப்பூர்வ Git ஆவணங்கள் . நான் அதை ஒரு குறிப்பு என பரிந்துரைக்கிறேன்.
GO TO FULL VERSION