ஒப்பீடு

Git மற்றும் GitHub: வேறுபாடு என்ன, அவை எவ்வாறு தொடர்புடையவை

புதுப்பிக்கப்பட்டது: · Skillaria.Top

Git என்பது உங்கள் கணினியில் இயங்கும் பதிப்புக் கட்டுப்பாட்டு நிரல்; திட்ட வரலாற்றை உள்ளூரில் வைத்திருக்கிறது. GitHub என்பது Git களஞ்சியங்களைச் சேமிக்கும் கிளவுட் சேவை; அதில் pull request, குறியீடு மதிப்பாய்வு, பணிகள் மற்றும் CI போன்ற குழு வேலைக் கருவிகள் உள்ளன. Git-ஐ GitHub இல்லாமல் பயன்படுத்தலாம்; GitHub-ஐ Git இல்லாமல் பயன்படுத்த முடியாது.

Git மற்றும் GitHub தொடர்ந்து குழப்பப்படுகின்றன, ஆனால் அவை வெவ்வேறு நிலைகளைச் சேர்ந்தவை. Git என்பது நீங்கள் கணினியில் நிறுவும் பதிப்புக் கட்டுப்பாட்டு நிரல்: திட்டத்தின் ஒவ்வொரு சேமித்த நிலையையும் நினைவில் வைத்து அதற்குத் திரும்ப அனுமதிக்கிறது. GitHub என்பது Git களஞ்சியங்களின் நகல்களை வைத்திருக்கும் இணைய சேவை; அதைச் சுற்றி குழு வேலைக் கருவிகள் கட்டப்பட்டுள்ளன. எளிதாக நினைவில் வைக்க: Git என்பது இயந்திரம், GitHub என்பது அந்த இயந்திரத்தை நிறுத்தக்கூடிய சேவை நிலையம்.

Git என்றால் என்ன

Git ஒரு பரவலாக்கப்பட்ட பதிப்புக் கட்டுப்பாட்டு அமைப்பு. அதை 2005-இல் Linux கர்னல் மேம்பாட்டுக்காக Linus Torvalds உருவாக்கினார்; அதன் பின் அது தொழில்துறையின் தரநிலையாகிவிட்டது. Git முழுவதும் உள்ளூரில் இயங்குகிறது: வரலாறு திட்டத்தினுள் மறைக்கப்பட்ட .git கோப்புறையில் சேமிக்கப்படும், பெரும்பாலான செயல்பாடுகளுக்கு இணையம் தேவையில்லை.

இங்கே "பரவலாக்கப்பட்ட" என்பது முக்கியம். திட்டத்தின் ஒவ்வொரு பங்கேற்பாளரின் கணினியிலும் சமீபத்திய கோப்புகள் மட்டுமல்ல, முழு வரலாற்றுடன் கூடிய முழு நகல் இருக்கும். சேவையகம் அழிந்தாலும் எந்த வேலை கணினியிலிருந்தும் திட்டத்தை மீட்கலாம்.

Git தனியாகச் செய்யக்கூடியவை:

  • மாற்றங்களை commit-களாகப் பதிவு செய்தல் — ஆசிரியர், தேதி மற்றும் விளக்கத்துடன் திட்டத்தின் நிலைப்படங்கள்;
  • யார், எப்போது, ஏன் ஒரு வரியை மாற்றினார் என்று காட்டுதல் (git log, git blame);
  • கிளைகளில் இணையான வளர்ச்சி வழிகளை நடத்தி அவற்றை இணைத்தல்;
  • மற்ற வேலையை இழக்காமல் பிழைகளைத் திருப்பிவிடுதல்;
  • git push, git pull மற்றும் git fetch மூலம் பிற களஞ்சியங்களுடன் வரலாற்றைப் பரிமாறிக்கொள்ளுதல்.

Git ஒரு கட்டளை வரி கருவி. வரைகலை கிளையண்டுகளும் எடிட்டர்களில் (VS Code, IntelliJ IDEA) உள்ள பலகங்களும் அதே கட்டளைகளின் மேல் உள்ள உறைகள் மட்டுமே.

GitHub என்றால் என்ன

GitHub என்பது Git களஞ்சியங்களை வழங்கும் கிளவுட் தளம்; இன்று அது Microsoft-க்குச் சொந்தமானது. அங்கே களஞ்சியத்தை உருவாக்கி, git push மூலம் உங்கள் உள்ளூர் குறியீட்டை அனுப்புகிறீர்கள்; களஞ்சியம் பொதுவானதாக இருந்தால் சகாக்கள், முதலாளி அல்லது முழு இணையமும் அதைப் பார்க்கலாம்.

ஆனால் GitHub-இன் மதிப்பு சேமிப்பில் மட்டும் இல்லை. களஞ்சியத்தைச் சுற்றி Git-இல் இல்லாத அம்சங்களை அது சேர்க்கிறது:

  • Pull request — கிளையை இணைக்கக் கோரிக்கை; வரி வரியாக விவாதம் மற்றும் மதிப்பாய்வுடன்;
  • Issues — திட்டத்துடன் இணைக்கப்பட்ட பணிகள் மற்றும் பிழை அறிக்கைகள்;
  • GitHub Actions — CI/CD: ஒவ்வொரு push-இலும் சோதனைகள், build மற்றும் deploy தானாக இயங்கும்;
  • அணுகல் மேலாண்மை — யார் படிக்கலாம், எழுதலாம், பாதுகாக்கப்பட்ட கிளைகளில் இணைக்கலாம்;
  • டெவலப்பர் சுயவிவரம் — செயல்பாட்டு வரைபடம் மற்றும் பொது திட்டங்கள், அவற்றை ஆட்சேர்ப்பாளர்கள் பார்ப்பார்கள்;
  • GitHub Pages — களஞ்சியத்திலிருந்து நேரடியாக நிலையான இணையதளங்களுக்கான இலவச ஹோஸ்டிங்.

"git com" அல்லது "git hub" போன்ற தேடல்கள் பொதுவாக இந்தச் சேவையையே குறிக்கின்றன — அதன் முகவரி github.com. Git-இன் அதிகாரப்பூர்வ தளம் git-scm.com; நிறுவியை அங்கிருந்துதான் பதிவிறக்குகிறார்கள்.

Git மற்றும் GitHub: அட்டவணை ஒப்பீடு

அளவுகோல்GitGitHub
அது என்னபதிப்புக் கட்டுப்பாட்டு நிரல்களஞ்சியங்களை வழங்கும் இணைய சேவை
எங்கே இயங்குகிறதுஉங்கள் கணினியில்கிளவுடில், உலாவி மற்றும் API மூலம்
இணையம் தேவையாஇல்லை, தொலைநிலைக் களஞ்சியங்களுடன் பரிமாற்றம் தவிரஆம்
உரிமம்திறந்த மூலக் குறியீடு (GPLv2), இலவசம்தனியுரிமச் சேவை; இலவச மற்றும் கட்டணத் திட்டங்கள்
இடைமுகம்கட்டளை வரி, GUI கிளையண்டுகள்இணையதளம், GitHub Desktop, CLI gh
முதன்மைப் பணிபதிப்புகளின் வரலாறு, கிளைகள், இணைப்புகள்கூட்டுப் பணி, மதிப்பாய்வு, CI, குறியீட்டை வெளியிடுதல்
மற்றது இல்லாமல் முடியுமாஆம், முழுமையாகஇல்லை, GitHub Git-இன் மேல் கட்டப்பட்டது

Git மற்றும் GitHub எப்படி சேர்ந்து வேலை செய்கின்றன

இரண்டையும் இணைப்பது remote — தொலைநிலைக் களஞ்சியம். உள்ளூர் களஞ்சியத்தில் GitHub களஞ்சியத்தின் முகவரி ஒரு குறுகிய பெயரில் சேமிக்கப்படுகிறது; இயல்பாக அது origin. பின்னர் பரிமாற்றம் மூன்று கட்டளைகளால் நடக்கிறது:

  • git push — உங்கள் புதிய commit-களை சேவையகத்திற்கு அனுப்ப;
  • git fetch — மற்றவர்களின் commit-களைப் பதிவிறக்க, ஆனால் உங்கள் கோப்புகளைத் தொடாமல்;
  • git pull — பதிவிறக்கி உடனே நடப்புக் கிளையில் இணைக்க (அடிப்படையில் fetch + merge அல்லது rebase).

முக்கியம்: நீங்கள் அனுப்பும் வரை GitHub உங்கள் குறியீட்டைப் பார்க்காது. முதல் git push வரை commit உள்ளூரில் மட்டுமே உள்ளது. அதனால் தொடக்கநிலையாளர்கள் செய்யும் பொதுவான தவறு — "commit செய்தேன், ஆனால் GitHub-இல் எதுவும் இல்லை".

பொதுவான வழி: உள்ளூர் திட்டத்திலிருந்து GitHub வரை

# 1. Создаём репозиторий локально
cd my-project
git init
git add .
git commit -m "Первый коммит"

# 2. Создаём пустой репозиторий на github.com (без README),
#    копируем его адрес и подключаем как remote
git remote add origin git@github.com:username/my-project.git

# 3. Переименовываем ветку в main и отправляем
git branch -M main
git push -u origin main

-u கொடி (முழு வடிவம் --set-upstream) உள்ளூர் main-ஐ தொலைநிலைக் கிளையுடன் இணைக்கிறது. அதன் பின் வாதங்கள் இல்லாமல் வெறுமனே git push மற்றும் git pull போதும்.

எதிர்த் திசை: GitHub-இல் உள்ள களஞ்சியத்திலிருந்து தொடங்குவது

திட்டம் ஏற்கனவே GitHub-இல் இருந்தால், அதை மீண்டும் உருவாக்காமல் நகலெடுக்கிறார்கள்:

git clone https://github.com/username/my-project.git
cd my-project

கட்டளை முழு வரலாற்றையும் பதிவிறக்கி origin remote-ஐத் தானாக அமைக்கும்.

அங்கீகாரம்: SSH அல்லது HTTPS

2021-இலிருந்து HTTPS வழியாக Git பயன்படுத்தும்போது GitHub கணக்குக் கடவுச்சொல்லை ஏற்பதில்லை. இரண்டு வேலை செய்யும் வழிகள் உண்டு.

HTTPS + Personal Access Token. டோக்கனை கணக்கு அமைப்புகளில் (Settings → Developer settings) உருவாக்கி கடவுச்சொல்லுக்குப் பதிலாக உள்ளிடுங்கள். ஒவ்வொரு முறையும் உள்ளிடாமல் இருக்க Git நற்சான்று மேலாளரைப் பயன்படுத்தும் — Windows-இல் அது Git for Windows உடன் நிறுவப்படும்.

SSH விசைகள். முதலாளிகள் நீங்களே அமைக்கத் தெரிந்திருப்பீர்கள் என எதிர்பார்க்கும் வழி:

# Генерируем ключ
ssh-keygen -t ed25519 -C "you@example.com"

# Выводим публичную часть и добавляем её на GitHub:
# Settings → SSH and GPG keys → New SSH key
cat ~/.ssh/id_ed25519.pub

# Проверяем соединение
ssh -T git@github.com

வெற்றியடைந்தால் GitHub உங்கள் பயனர்பெயருடன் வரவேற்பு செய்தி அனுப்பும், shell அணுகல் வழங்கப்படவில்லை என்றும் சொல்லும் — இது இயல்பானது. அப்போது களஞ்சிய முகவரியை https:// அல்ல, git@github.com:user/repo.git வடிவில் பயன்படுத்த வேண்டும்.

களஞ்சியம் ஏற்கனவே HTTPS வழியாக இணைக்கப்பட்டிருந்தால், ஒரே கட்டளையில் SSH-க்கு மாற்றலாம்:

git remote set-url origin git@github.com:username/my-project.git

GitHub, GitLab மற்றும் பிறவை: வேறுபாடு என்ன

GitHub Git-க்கான ஒரே ஹோஸ்டிங் அல்ல. எல்லாமே ஒரே Git-உடன் வேலை செய்கின்றன; அதனால் வரலாற்றை இழக்காமல் ஒரு களஞ்சியத்தை ஒன்றிலிருந்து மற்றொன்றுக்கு மாற்றலாம். குறியீட்டைச் சுற்றியுள்ள கருவிகளின் தொகுப்பில்தான் அவை வேறுபடுகின்றன.

சேவைசிறப்பம்சங்கள்எப்போது தேர்ந்தெடுக்கப்படுகிறது
GitHubமிகப்பெரிய open source சமூகம், GitHub Actions, Copilotபோர்ட்ஃபோலியோ, திறந்த திட்டங்கள், பெரும்பாலான startup-கள்
GitLabபெட்டியிலேயே CI/CD, சொந்த சேவையகத்தில் நிறுவலாம் (self-hosted)குறியீடு தங்களின் உள்கட்டமைப்புக்குள் இருக்க வேண்டிய நிறுவனங்கள்
BitbucketJira மற்றும் Atlassian தயாரிப்புகளுடன் ஒருங்கிணைப்புAtlassian சூழலில் வாழும் குழுக்கள்
Gitea, Forgejoஇலகுவான, open source, சொந்த சேவையக தீர்வுகள்சிறிய குழுக்கள், வீட்டுச் சேவையகங்கள்

GitLab-இல் இணைப்புக் கோரிக்கையை merge request என்றும், GitHub-இல் pull request என்றும் அழைக்கிறார்கள்; ஆனால் பொருள் ஒன்றே: கிளையிலிருந்து மாற்றங்களை முன்வைத்து இணைப்பதற்கு முன் விவாதிப்பது. சொற்கள் வேறுபடுகின்றன, Git கட்டளைகள் ஒன்றே.

ஒரே உள்ளூர் களஞ்சியத்தில் பல remote-களை ஒரே நேரத்தில் வைத்திருக்கலாம், உதாரணமாக திட்டத்தை GitHub மற்றும் GitLab இரண்டிலும் பிரதியெடுக்க:

git remote add gitlab git@gitlab.com:username/my-project.git
git push gitlab main
git remote -v

நான் தனியாக வேலை செய்தால் GitHub தேவையா

தொழில்நுட்ப ரீதியாக இல்லை: Git உள்ளூரில் நன்றாக வேலை செய்கிறது. ஆனால் தனிப்பட்ட திட்டத்துக்குக் கூட தொலைநிலைக் களஞ்சியத்தில் மூன்று முக்கிய நன்மைகள் உண்டு:

  • காப்புப் பிரதி. மடிக்கணினி பழுதானால் குறியீடும் முழு வரலாறும் சேவையகத்தில் பாதுகாப்பாக இருக்கும்.
  • பல சாதனங்களில் வேலை. வீட்டிலும் அலுவலகத்திலும் push மற்றும் pull மூலம் ஒத்திசைக்கலாம்.
  • போர்ட்ஃபோலியோ. junior பதவிகளுக்கான தேர்வில் GitHub சுயவிவரம் பெரும்பாலும் விண்ணப்பத்துக்கு முன்பே பார்க்கப்படுகிறது: உயிருள்ள திட்டங்கள், அர்த்தமுள்ள commit செய்திகள், README உள்ளனவா.

தொடக்கநிலையாளர் எங்கிருந்து தொடங்குவது

Git-உம் GitHub-உம் ஒரே நேரத்தில் கற்க வேண்டியதில்லை — வரிசை முக்கியம். முதலில் உள்ளூர் சுழற்சியில் தேர்ச்சி பெறுங்கள்: git init, git status, git add, git commit, git log, கிளைகள் மற்றும் இணைப்பு. உதவியின்றி அது வேலை செய்ய ஆரம்பித்ததும், GitHub-இல் பதிவு செய்து SSH-ஐ அமைத்து push, pull, fetch கற்கவும். கடைசிப் படி — குழு செயல்முறை: fork, பணிக்கான கிளை, pull request, மதிப்பாய்வு.

உங்கள் GitHub-இல் முதலாளி என்ன பார்க்கிறார்

பச்சை நிறச் செயல்பாட்டுச் சதுரங்கள் முக்கியமல்ல. அனுபவமுள்ள மதிப்பாய்வாளர் சில நிமிடங்களில் வேறு விஷயங்களை மதிப்பிடுகிறார்:

  • "fix", "123", "правки" போன்றவற்றுக்குப் பதிலாக புரியும் commit செய்திகள்;
  • ஒரு பெரிய "project uploaded" commit அல்ல, சிறிய தர்க்கரீதியான commit-கள்;
  • திட்டத்தை எப்படி இயக்குவது என்று விளக்கும் README;
  • .gitignore கோப்பு: களஞ்சியத்தில் node_modules, கடவுச்சொற்கள் கொண்ட .env, IDE கோப்புகள் இல்லை;
  • கற்றல் திட்டங்களிலும் கிளைகளும் pull request-உம் — நீங்கள் குழு செயல்முறையை அறிந்தவர் என்று இது காட்டுகிறது.

தொடக்கநிலையாளர்களின் பொதுவான தவறுகள்

«fatal: not a git repository»

களஞ்சியத்திற்கு வெளியே Git கட்டளையை இயக்குகிறீர்கள். திட்டக் கோப்புறைக்குச் செல்லுங்கள் அல்லது git init இயக்குங்கள். இங்கே GitHub பதிவுக்கு எந்தத் தொடர்பும் இல்லை — அது உள்ளூர் Git பிழை.

«Permission denied (publickey)»

SSH விசை உருவாக்கப்படவில்லை, GitHub-இல் சேர்க்கப்படவில்லை, அல்லது ssh-agent-இல் ஏற்றப்படவில்லை. ssh -T git@github.com மற்றும் கணக்கு அமைப்புகளில் உள்ள விசைகளின் பட்டியலைச் சரிபாருங்கள்.

push-இல் «rejected … (fetch first)»

சேவையகத்தில் உங்களிடம் இல்லாத commit-கள் உள்ளன — உதாரணமாக GitHub-இல் README-உடன் களஞ்சியத்தை உருவாக்கியிருக்கலாம். முதலில் மாற்றங்களைப் பெறுங்கள்: git pull --rebase origin main, பின்னர் git push-ஐ மீண்டும் இயக்குங்கள். யாருடைய வேலையை மேலெழுதுகிறீர்கள் என்று புரியும் வரை --force பயன்படுத்த வேண்டாம்.

பொது களஞ்சியத்தில் ரகசியங்கள்

ஒருமுறை commit-இல் சேர்ந்த கடவுச்சொல் அல்லது API விசை, கோப்பை பின்னர் நீக்கினாலும் வரலாற்றில் இருக்கும். அத்தகைய விசையை உடனே மீண்டும் உருவாக்க வேண்டும், .env கோப்பை முன்கூட்டியே .gitignore-இல் சேர்க்க வேண்டும்.

சுருக்கம்

Git என்பது உங்கள் கணினியில் உள்ள பதிப்புக் கட்டுப்பாட்டுக் கருவி; GitHub என்பது அந்தக் களஞ்சியங்கள் கிளவுடில் வாழும் சேவை, அதைச் சுற்றி குழு வேலை கட்டப்பட்டுள்ளது. GitLab, Bitbucket மற்றும் பிறவை GitHub-க்கு மாற்றுகள்; Git-க்கு அல்ல — எல்லாவற்றிலும் அதே commit-கள், கிளைகள் மற்றும் கட்டளைகள். உள்ளூர் Git-இலிருந்து தொடங்குங்கள், பின்னர் தொலைநிலையை இணைத்து SSH-ஐ அமையுங்கள். உள்ளூர் களஞ்சியத்தை GitHub-உடன் இணைப்பது, push, pull மற்றும் fetch Git பாடநெறியில் நடைமுறையில் விளக்கப்பட்டுள்ளன.

அடிக்கடி கேட்கப்படும் கேள்விகள்

GitHub இலவசமா?

ஆம், இலவசத் திட்டத்தில் வரம்பற்ற பொது மற்றும் தனியார் களஞ்சியங்களை உருவாக்கலாம். கட்டணத் திட்டங்கள் குழுக்களுக்கான கூடுதல் அம்சங்களையும், தனியார் திட்டங்களுக்கு GitHub Actions நேரத்தையும் சேர்க்கின்றன.

கட்டளை வரி இல்லாமல் GitHub-ஐப் பயன்படுத்த முடியுமா?

ஆம், GitHub Desktop அல்லது எடிட்டர்களின் உள்ளமைந்த Git பலகங்கள் மூலம். ஆனால் அவை அதே Git கட்டளைகளை இயக்குகின்றன; முரண்பாடுகளின்போது அவற்றைப் புரிந்துகொள்வது இன்னும் பயனுள்ளது.

GitHub கணக்கு இருந்தால் Git நிறுவ வேண்டுமா?

ஆம். கணக்கு சேமிப்பிடத்தைத் தருகிறது; குறியீட்டுடன் உள்ளூரில் வேலை செய்ய — commit, கிளை, push — நீங்கள் நிறுவிய Git-ஐப் பயன்படுத்துவீர்கள்.

GitHub களஞ்சியத்தை GitLab-க்கு எப்படி மாற்றுவது?

புதிய remote-ஐச் சேர்த்து எல்லாக் கிளைகளையும் tag-களையும் அனுப்புங்கள்: <code>git push gitlab --all</code> மற்றும் <code>git push gitlab --tags</code>. இரண்டுமே Git-இல் இயங்குவதால் வரலாறு முழுமையாக மாறும்.

பொது களஞ்சியத்திற்கும் தனியார் களஞ்சியத்திற்கும் என்ன வேறுபாடு?

பொது களஞ்சியத்தை இணையத்தில் அனைவரும் பார்க்கலாம்; தனியார் களஞ்சியத்தை நீங்களும் அழைக்கப்பட்ட உறுப்பினர்களும் மட்டுமே பார்க்கலாம். போர்ட்ஃபோலியோவுக்கு பொது களஞ்சியங்கள் தேவை.

இந்தத் தலைப்பை வீடியோவில் கற்றுக்கொள்ளுங்கள்

“கிட்: ஆரம்பம் முதல் நம்பிக்கையான டெவலப்பர் வரை” பாடநெறியில் இந்தத் தலைப்பு பயிற்சியுடன் விரிவாக விளக்கப்பட்டுள்ளது.

பாடநெறிக்குச் செல்