GitHub Git रिपॉजिटरी होस्टिंग, सहयोगात्मक डेवलपमेंट और प्रक्रिया ऑटोमेशन के लिए सबसे बड़ा वेब प्लेटफ़ॉर्म है, जो Microsoft के स्वामित्व में है। यह न केवल संस्करण नियंत्रण के साथ कोड भंडारण प्रदान करता है, बल्कि प्रोजेक्ट प्रबंधन उपकरणों का एक पूरा सेट भी प्रदान करता है: Issue Tracking, कोड समीक्षा के साथ Pull Request, CI/CD के लिए Actions और दस्तावेज़ीकरण के लिए Wiki। GitHub, 2024 के अनुसार, प्लेटफ़ॉर्म पर 100 मिलियन से अधिक डेवलपर और 420 मिलियन रिपॉजिटरी हैं।
मुख्य बातें
GitHub Git रिपॉजिटरी पर भंडारण और सहयोग के लिए एक वेब सेवा है, जिसकी स्थापना 2008 में Tom Preston-Werner, Chris Wanstrath और PJ Hyett ने की थी। 2018 में, कंपनी को Microsoft द्वारा 7.5 बिलियन डॉलर में अधिग्रहित किया गया था। प्लेटफ़ॉर्म सभी Git संचालन के लिए एक वेब इंटरफ़ेस प्रदान करता है, जिसमें सामाजिक सुविधाएँ जोड़ी गई हैं: forks, स्टार, सब्सक्रिप्शन, कोड समीक्षा और एक अंतर्निहित सतत एकीकरण प्रणाली।
GitHub और इसके प्रतिस्पर्धियों के बीच मुख्य अंतर इसका खुला पारिस्थितिकी तंत्र और सबसे बड़ा डेवलपर समुदाय है। GitHub Android, Kubernetes, React, Swift, Kotlin और हजारों अन्य ओपन-सोर्स प्रोजेक्ट्स के स्रोत कोड की मेजबानी करता है। यह प्लेटफ़ॉर्म को न केवल कोड भंडारण उपकरण बनाता है बल्कि डेवलपर्स के लिए एक सोशल नेटवर्क भी बनाता है: आप प्रोजेक्ट्स को फ़ॉलो कर सकते हैं, बदलावों पर चर्चा कर सकते हैं और pull requests के माध्यम से योगदान कर सकते हैं।
Microsoft रिपोर्ट (2024) के अनुसार, प्रतिदिन 10 मिलियन से अधिक नए Pull Requests GitHub से गुज़रते हैं, और मासिक सक्रिय उपयोगकर्ताओं की संख्या 100 मिलियन से अधिक हो गई है। प्लेटफ़ॉर्म 500 से अधिक प्रोग्रामिंग भाषाओं, फ़ाइल एक्सटेंशन द्वारा स्वचालित भाषा पहचान और कोड सिंटैक्स हाइलाइटिंग का समर्थन करता है।
GitHub की कार्यक्षमता साधारण Git होस्टिंग से कहीं आगे तक जाती है। प्लेटफ़ॉर्म प्रदान करता है: GitHub Actions — एक अंतर्निहित CI/CD सिस्टम; GitHub Packages — पैकेज और कंटेनरों के लिए एक रजिस्ट्री; GitHub Codespaces — VS Code पर आधारित क्लाउड डेवलपमेंट वातावरण; GitHub Discussions — समुदाय के लिए एक फ़ोरम; GitHub Security — स्वचालित निर्भरता अपडेट और भेद्यता स्कैनिंग के लिए Dependabot; GitHub Copilot — कोड लिखने के लिए एक AI सहायक।
संगठनों के लिए, GitHub GitHub Enterprise प्रदान करता है — स्व-होस्टेड (GitHub Enterprise Server) या क्लाउड डिप्लॉयमेंट (GitHub Enterprise Cloud) के साथ एक एंटरप्राइज़ संस्करण। एंटरप्राइज़ सुविधाओं में SAML/SSO प्रमाणीकरण, ऑडिट लॉगिंग, रिपॉजिटरी सुरक्षा नीतियाँ और 99.95% उपलब्धता SLA शामिल हैं। एंटरप्राइज़ संस्करण का उपयोग Google, Apple और Airbnb जैसी कंपनियों द्वारा किया जाता है।
GitHub की एक महत्वपूर्ण विशेषता GitHub CLI (gh) है, जो आपको वेब इंटरफ़ेस का उपयोग किए बिना कमांड लाइन से सभी प्लेटफ़ॉर्म संचालन करने की अनुमति देता है। gh के साथ, आप रिपॉजिटरी बना सकते हैं, Issues प्रबंधित कर सकते हैं, Pull Requests की समीक्षा कर सकते हैं और सीधे टर्मिनल से Actions चला सकते हैं, जो कमांड लाइन के आदी डेवलपर्स के काम को गति देता है।
| सुविधा | उद्देश्य | उपलब्धता |
|---|---|---|
| Actions | CI/CD और ऑटोमेशन | मुफ्त 2000 मिनट/माह |
| Codespaces | VS Code पर आधारित क्लाउड IDE | सशुल्क, 60 घंटे/माह मुफ्त |
| Packages | पैकेज और Docker इमेज होस्टिंग | मुफ्त 500 MB |
| Dependabot | स्वचालित निर्भरता अपडेट | सार्वजनिक रिपो के लिए मुफ्त |
| Pages | स्थिर साइट होस्टिंग | मुफ्त |
Pull Request (PR) GitHub पर किसी प्रोजेक्ट में बदलाव करने का मुख्य तंत्र है। एक डेवलपर बदलावों के साथ एक ब्रांच बनाता है, इसे GitHub पर प्रकाशित करता है और मुख्य ब्रांच में एक मर्ज अनुरोध (Pull Request) भेजता है। प्रोजेक्ट के अन्य प्रतिभागी ब्रांचों के बीच का अंतर (diff) देखते हैं, विशिष्ट कोड पंक्तियों पर टिप्पणी छोड़ सकते हैं, बदलाव सुझा सकते हैं और अनुरोध को स्वीकृत या अस्वीकार कर सकते हैं।
GitHub पर कोड समीक्षा प्रक्रिया PRs के आसपास बनाई गई है। प्रत्येक टिप्पणी diff में एक विशिष्ट पंक्ति से जुड़ी होती है और तीन प्रकार की हो सकती है: Comment (सामान्य टिप्पणी), Request Changes(सुधार की आवश्यकता है) और Approve(अनुमोदन)। बदलाव करने के बाद, लेखक एक नई कमिट के साथ PR को अपडेट करता है, और समीक्षा प्रक्रिया दोहराई जाती है। जब सभी आपत्तियाँ हल हो जाती हैं और PR स्वीकृत हो जाता है, तो बदलाव लक्ष्य ब्रांच में मर्ज कर दिए जाते हैं।
# फ़ीचर ब्रांच बनाना और push करना
git checkout -b fix-login-bug
git add src/
git commit -m "Fix login validation error"
git push -u origin fix-login-bug
# CLI के माध्यम से PR बनाना
gh pr create --base main --title "Fix login validation" \
--body "Fixed edge case with empty email field"
# PR देखना और मर्ज करना
gh pr review --approve fix-login-bug
gh pr merge --squash fix-login-bug
GitHub ब्रांच सुरक्षा नियमों का समर्थन करता है: आप main में सीधे push को रोक सकते हैं, मर्ज से पहले अनिवार्य अनुमोदन की संख्या आवश्यक कर सकते हैं, Actions जाँच चला सकते हैं और मर्ज से पहले ब्रांच को अप-टू-डेट रखने की आवश्यकता कर सकते हैं। ब्रांच सुरक्षा Settings → Branches में कॉन्फ़िगर की जाती है और प्रोडक्शन प्रोजेक्ट्स के लिए एक अनिवार्य अभ्यास है, जो मुख्य ब्रांच में अस्थिर कोड के आकस्मिक परिचय को रोकता है।
GitHub Actions एक अंतर्निहित CI/CD प्लेटफ़ॉर्म है जो आपको सीधे रिपॉजिटरी में वर्कफ़्लो को स्वचालित करने की अनुमति देता है। वर्कफ़्लो को .github/workflows/ निर्देशिका में स्थित YAML फ़ाइलों में वर्णित किया जाता है। प्रत्येक वर्कफ़्लो में एक या अधिक जॉब होते हैं जो runners — Linux, Windows या macOS वाली वर्चुअल मशीनों पर चलते हैं।
Actions एक ईवेंट-संचालित मॉडल का समर्थन करता है: वर्कफ़्लो push, PR निर्माण, रिलीज़ प्रकाशन, शेड्यूल पर या webhook के माध्यम से ट्रिगर होते हैं। यह आपको डेवलपर की भागीदारी के बिना बिल्ड, परीक्षण चलाने, स्थैतिक कोड विश्लेषण, ऐप स्टोर में प्रकाशन और सर्वर पर डिप्लॉयमेंट को स्वचालित करने की अनुमति देता है। नीचे Android प्रोजेक्ट के लिए एक उदाहरण वर्कफ़्लो दिया गया है:
name: Android CI
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
- name: Build with Gradle
run: ./gradlew assembleDebug
Actions पारिस्थितिकी तंत्र में GitHub Marketplace में 20,000 से अधिक तैयार एक्शन शामिल हैं। लोकप्रिय एक्शन: checkout (रिपॉजिटरी क्लोन करना), setup-java/setup-node/setup-python (वातावरण सेटअप), upload-artifact (बिल्ड आर्टिफ़ैक्ट सहेजना), cache (गति के लिए निर्भरता कैशिंग), slack-notify (Slack पर सूचनाएँ भेजना)। Actions मैट्रिक्स बिल्ड का भी समर्थन करता है — कई OS या भाषा संस्करणों पर एक साथ निष्पादन।
Issues GitHub पर कार्य ट्रैकिंग की एक अंतर्निहित प्रणाली है। प्रत्येक Issue में एक शीर्षक, विवरण, लेबल, असाइनी, माइलस्टोन और लिंक्ड Pull Requests होते हैं। Issues को टेम्पलेट किया जा सकता है — बग रिपोर्ट, फ़ीचर अनुरोध या प्रश्नों के लिए विभिन्न टेम्पलेट का उपयोग किया जाता है, जो निर्माण करते समय स्वचालित रूप से सम्मिलित होते हैं।
GitHub Projects (पूर्व में Projects Beta) बोर्ड-आधारित प्रोजेक्ट प्रबंधन उपकरण है, जो Jira और Trello के समान है। Projects कस्टम फ़ील्ड (स्थिति, प्राथमिकता, स्प्रिंट), Issues और Pull Requests के साथ लिंकिंग, कार्य स्थिति बदलने पर कार्ड आंदोलन का ऑटोमेशन और बर्नडाउन चार्ट के रूप में विश्लेषण का समर्थन करता है। Projects दो मोड में उपलब्ध है: Table (तालिका दृश्य) और Board (कानबान बोर्ड)।
रिलीज़ प्रबंधन के लिए, GitHub Milestones प्रदान करता है — एक सामान्य लक्ष्य के साथ Issues और PR के समूह जिनकी समय सीमा होती है। प्रत्येक माइलस्टोन प्रगति दिखाता है: कितने कार्य खुले हैं, कितने बंद हैं और क्या समय सीमा पूरी हो रही है। माइलस्टोन Releases के साथ एकीकृत होते हैं — रिलीज़ प्रकाशित करते समय, आप इसे एक माइलस्टोन से लिंक कर सकते हैं और बंद Issues के आधार पर स्वचालित रूप से CHANGELOG उत्पन्न कर सकते हैं।
GitHub Pages स्थिर साइटों के लिए मुफ्त होस्टिंग है जो स्वचालित रूप से https://username.github.io/repository पर रिपॉजिटरी सामग्री प्रकाशित करता है। Pages HTML, CSS, JavaScript और स्थैतिक जनरेटर: Jekyll (अंतर्निहित), Hugo, Next.js (निर्यात) और MkDocs का समर्थन करता है। कॉन्फ़िगरेशन में प्रकाशन के लिए ब्रांच और निर्देशिका चुनना, साथ ही कस्टम डोमेन समर्थन शामिल है।
तकनीकी दस्तावेज़ीकरण के लिए, GitHub Wiki प्रदान करता है — एक अंतर्निहित विकी प्रणाली जो Git रिपॉजिटरी के रूप में भी संग्रहीत होती है। Wiki Markdown का समर्थन करता है और वेब इंटरफ़ेस के माध्यम से और स्थानीय रूप से wiki रिपॉजिटरी में push के माध्यम से पृष्ठों को संपादित करने की अनुमति देता है। प्रत्येक Wiki पृष्ठ का अपना परिवर्तन इतिहास होता है, जो API, आर्किटेक्चर और प्रोजेक्ट प्रक्रियाओं के दस्तावेज़ीकरण के लिए सुविधाजनक है।
GitHub Pages + Jekyll का संयोजन दस्तावेज़ीकरण साइटों के लिए एक लोकप्रिय समाधान है। Jekyll स्वचालित रूप से Markdown फ़ाइलों को स्थिर HTML पृष्ठों में परिवर्तित करता है, थीम, नेविगेशन और खोज का समर्थन करता है। उदाहरण के लिए, Android Developers दस्तावेज़ीकरण पहले GitHub Pages पर Jekyll का उपयोग करता था, और अब एक आंतरिक प्लेटफ़ॉर्म का उपयोग करता है, लेकिन हजारों ओपन-सोर्स प्रोजेक्ट अपनी साइटों के लिए इस संयोजन का उपयोग जारी रखते हैं।
GitHub CLI (gh) आपको कमांड लाइन के माध्यम से सभी प्लेटफ़ॉर्म संचालन करने की अनुमति देता है: रिपॉजिटरी बनाना, Issues प्रबंधित करना, Pull Requests देखना और स्वीकृत करना, Actions चलाना। कमांड gh repo create my-project --public एक दूरस्थ रिपॉजिटरी बनाता है और इसे स्थानीय से लिंक करता है, जबकि gh pr create वर्तमान ब्रांच से एक Pull Request बनाता है। CLI उन डेवलपर्स के काम को गति देता है जो वेब इंटरफ़ेस की तुलना में टर्मिनल पसंद करते हैं।
GitHub REST API और GraphQL API सभी प्लेटफ़ॉर्म सुविधाओं तक प्रोग्रामेटिक पहुँच प्रदान करते हैं: Issues बनाना, उपयोगकर्ताओं का प्रबंधन करना, आँकड़े प्राप्त करना और Actions प्रबंधित करना। GraphQL API जटिल क्वेरी के लिए बेहतर है क्योंकि यह एक अनुरोध में केवल आवश्यक फ़ील्ड प्राप्त करने की अनुमति देता है। REST API के लिए दर सीमा प्रमाणित उपयोगकर्ताओं के लिए प्रति घंटे 5000 अनुरोध है। API का व्यापक रूप से GitHub को बाहरी CI सिस्टम और आंतरिक DevOps उपकरणों के साथ एकीकृत करने के लिए उपयोग किया जाता है।
GitHub Gist पूर्ण रिपॉजिटरी बनाए बिना कोड स्निपेट प्रकाशित करने की एक सेवा है। Gist सिंटैक्स हाइलाइटिंग, बाहरी साइटों पर एम्बेडिंग और संस्करण इतिहास का समर्थन करता है। प्रत्येक Gist सार्वजनिक (खोज में दृश्यमान) या गुप्त (केवल लिंक के माध्यम से सुलभ) हो सकता है। Gist का उपयोग टीम पत्राचार में कॉन्फ़िगरेशन, लॉग और कोड उदाहरणों को तुरंत साझा करने के लिए किया जाता है, साथ ही डेवलपर्स के लिए Pastebin के विकल्प के रूप में भी।
अक्सर पूछे जाने वाले प्रश्न
GitHub खुले समुदाय और सामाजिक सुविधाओं (forks, स्टार) पर ध्यान केंद्रित करता है। GitLab अधिक शक्तिशाली अंतर्निहित CI/CD और Actions मिनटों पर बिना सीमा के स्व-प्रबंधित होस्टिंग प्रदान करता है।
GitHub Team की लागत $4 प्रति उपयोगकर्ता प्रति माह है और यह असीमित निजी रिपॉजिटरी, ब्रांच सुरक्षा और Actions (3000 मिनट) प्रदान करता है। मुफ्त योजना छोटी ओपन-सोर्स परियोजनाओं के लिए उपयुक्त है।
रिपॉजिटरी बनाते समय, Public के बजाय Private चुनें। निजी रिपॉजिटरी में, कोड केवल आमंत्रित सहयोगियों को दिखाई देता है। मुफ्त योजना पर, निजी रिपॉजिटरी अधिकतम 3 सहयोगियों की सीमा के साथ उपलब्ध हैं।
GitHub Copilot OpenAI Codex पर आधारित एक AI सहायक है जो रीयल-टाइम कोड ऑटोकम्प्लीशन प्रदान करता है। यह VS Code, JetBrains और Neovim में काम करता है, सभी लोकप्रिय प्रोग्रामिंग भाषाओं का समर्थन करता है।
Settings → Danger Zone → Delete this repository पर जाएँ। हटाना अपरिवर्तनीय है — सभी कमिट, Issues और Wiki बिना पुनर्प्राप्ति की संभावना के हटा दिए जाएँगे। पहले से बैकअप लेना सुनिश्चित करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें