वर्शन कंट्रोल: PocketCode में बिल्ट-इन Git
एडिटर छोड़े बिना Git: stage, commit, ब्रांच, merge, stash और GitHub pull request, PocketCode में बिल्ट-इन।
वर्शन कंट्रोल: PocketCode में बिल्ट-इन Git
आधुनिक विकास में Git मौलिक है। PocketCode में Git बिल्ट-इन है (JGit लाइब्रेरी, कोई git प्रोग्राम इंस्टॉल करने की ज़रूरत नहीं), ताकि आप ऐप छोड़े बिना अपने कोड को प्रबंधित कर सकें। लोकल टर्मिनल में git कमांड नहीं है: नीचे सब कुछ स्क्रीन से होता है, और टर्मिनल का अपना Git Panel है।
विज़ुअल Git इंटरफ़ेस
Source Control
Source Control एडिटर का Git पैनल है (एडिटर मेनू → Git, या फ़िज़िकल कीबोर्ड पर Ctrl+Shift+G, या स्टेटस बार में ब्रांच के नाम पर टैप)। यह ब्रांच, वे commit जो आपने push नहीं किए (↑) और pull नहीं किए (↓) दिखाता है, और आपकी फ़ाइलों को इन समूहों में रखता है:
- Staged Changes — अगले commit के लिए तैयार
- Changes — बदली हुई tracked फ़ाइलें
- Untracked — नई फ़ाइलें
रिपॉज़िटरी में फ़ाइल एक्सप्लोरर भी हर बदली हुई फ़ाइल (modified, added, untracked, deleted या renamed) और बदलाव वाले फ़ोल्डरों पर निशान लगाता है।
विज़ुअल diff
किसी भी बदली हुई फ़ाइल पर टैप करके उसका diff एक ही सूची में देखें:
- जोड़ी गई पंक्तियाँ हरे रंग में
- हटाई गई पंक्तियाँ लाल रंग में
- पंक्ति संख्या और
+N −Mकुल, और दोनों पक्षों को आपस में बदलने वाला Swap बटन
बुनियादी ऑपरेशन
Commit करना
Source Control में:
- जो फ़ाइलें चाहिए उन्हें Stage करें (सब के लिए Stage All), या फ़ाइल के सिर्फ़ कुछ ब्लॉक stage करने के लिए Stage by hunk इस्तेमाल करें
- Commit message… में संदेश लिखें
- Commit पर टैप करें
एडिटर commit, push, pull, merge या stash के बाद कोई संदेश नहीं दिखाता, इसलिए सूचियाँ और ↑↓ काउंटर देखें। Projects में प्रोजेक्ट कार्ड का Commit बटन Commit Changes खोलता है, जिसमें Commit, Commit & Push और Amend last commit हैं, और टर्मिनल के Git Panel में भी Commit changes है।
ब्रांच के साथ काम
ब्रांच Projects में प्रोजेक्ट कार्ड पर होती हैं: Git टैप करें, फिर Branch। किसी ब्रांच पर टैप करके Switch to this branch करें, या Create new branch टैप करें (साथ में तुरंत उस पर जाने का switch)। ये पंक्तियाँ तब दिखती हैं जब प्रोजेक्ट में remote (origin) हो; टर्मिनल का Git Panel भी लोकल में ब्रांच बदल और बना सकता है। सिर्फ़ लोकल ब्रांच सूचीबद्ध होती हैं, और ब्रांच हटाने या उसका नाम बदलने का कोई बटन नहीं है।
Merge और rebase
Source Control में Merge टैप करें, एक लोकल ब्रांच चुनें और अपनी मौजूदा ब्रांच में Merge into टैप करें। merge या pull के लिए कोई guided conflict resolver नहीं है:
- अगर दोनों तरफ़ वही पंक्तियाँ बदली हैं, तो conflict मार्कर (
<<<<<<<,=======,>>>>>>>) आपकी फ़ाइलों में रह जाते हैं - प्रभावित फ़ाइलें खोलें और जो संस्करण चाहिए उसे रखें
- stage और commit करें, या pull दोबारा आज़माएँ
guided resolver (Ours, Theirs, Both, ब्लॉक-दर-ब्लॉक) सिर्फ़ interactive rebase (Pick, Reword, Squash, Fixup, Drop, restore हो सकने वाले backup के साथ) के अंदर है। वह GitHub PRs & Issues के ⋮ मेनू से खुलता है, और सिर्फ़ तब जब प्रोजेक्ट का origin github.com पर हो।
वर्कफ़्लो
Git Flow
main ─────────────────────── production
└── develop ─────────────── development
├── feature/login ──── feature
├── feature/api ────── feature
└── hotfix/bug-123 ── urgent fix
Trunk-Based Development
main ─────────────────────── single main branch
├── short-lived-branch ──── short-lived (< 1 day)
└── feature-flag ────────── hidden feature
प्लेटफ़ॉर्म इंटीग्रेशन
GitHub
- Upload changes (push) और Download changes (pull)
- ऐप से Pull Requests: सूची, बनाना, merge, बंद करना और comment
- Issues: सूची, बनाना, बंद करना और comment
- CI: pull request के checks (GitHub Actions और अन्य) एक ही सारांश में
GitLab
- अपनी रिपॉज़िटरी से क्लोन, लोकल प्रोजेक्ट publish, और HTTPS पर push/pull
- उसके सबसे ताज़ा CI pipeline रन की स्थिति Backend Manager के स्टेटस फ़ीड में
Bitbucket
- अपनी रिपॉज़िटरी से क्लोन, लोकल प्रोजेक्ट publish, और HTTPS पर push/pull
- उसके सबसे ताज़ा Pipelines रन की स्थिति Backend Manager के स्टेटस फ़ीड में
ऐप के अंदर pull/merge request आज सिर्फ़ GitHub (github.com) के लिए हैं। GitLab और Bitbucket के लिए merge request और pull request उनके वेब UI में खोलें।
Git stash
बिना commit किए बदलावों को अस्थायी रूप से सहेजें। Source Control में:
- Stash टैप करें, फिर Stash changes
- बाद में किसी एंट्री पर टैप करके Apply, Pop या Drop करें
ध्यान रखें: नई (untracked) फ़ाइलें stash नहीं होतीं, वैकल्पिक stash संदेश एंट्री के साथ सहेजा नहीं जाता, और Pop हमेशा सबसे नई एंट्री लेता है; किसी ख़ास एंट्री को वापस पाने के लिए उस पर Apply करें और फिर Drop।
Commit संदेश के सुझाव
स्पष्ट संदेशों के लिए Conventional Commits अपनाएँ:
feat: add OAuth2 authentication
fix: correct email validation error
docs: update README with setup instructions
style: format code with Prettier
refactor: simplify price calculation logic
test: add tests for payment module
chore: update dependencies
Source Control का AI message बटन चार शैलियों (Conventional, Descriptive, Imperative, Emoji) में संदेश सुझाता है। वह AI नहीं है: यह आपकी बदली हुई फ़ाइलों के नामों से बना लोकल, नियम-आधारित सुझाव है, इसलिए इस्तेमाल से पहले उसे जाँच लें।
कॉन्फ़िगरेशन
Commit पर आपका नाम
commit में रिपॉज़िटरी में सहेजा हुआ नाम और ईमेल जाता है। इन्हें Projects → प्रोजेक्ट कार्ड → Git → Your name on commits में सेट करें। ये शुरू में रिपॉज़िटरी, आपकी जुड़ी सेवा या आपके PocketCode अकाउंट से भरे होते हैं।
प्रमाणीकरण
PocketCode रिमोट से सिर्फ़ HTTPS पर बात करता है (SSH remotes समर्थित नहीं हैं)। GitHub और GitLab OAuth device flow से जुड़ते हैं: Settings → Integrations → Connected Services में ऐप एक कोड दिखाता है और आप उसे ब्राउज़र में मंज़ूर करते हैं। Bitbucket आपका Atlassian ईमेल और एक API token इस्तेमाल करता है। क्लोन, fetch, pull और निजी रिपॉज़िटरी में push, सभी जुड़े हुए अकाउंट से काम करते हैं, और टोकन सिर्फ़ github.com, gitlab.com और bitbucket.org को भेजा जाता है; किसी और होस्ट पर मौजूद remote (GitHub Enterprise, अपना GitLab) को क्रेडेंशियल नहीं मिलते। आपकी जुड़ी सेवाओं के टोकन डिवाइस पर एन्क्रिप्टेड सहेजे जाते हैं। अगर आप PocketCode में ही GitHub से साइन इन करते हैं, तो वह GitHub टोकन PocketCode के बैकएंड पर भी एन्क्रिप्टेड सहेजा जाता है, जो उसे आपकी रिपॉज़िटरी की सूची बनाने में इस्तेमाल करता है। हर लोकल ऑपरेशन — commit, branch, merge, stash, diff — साइन इन करने के बाद बिना कनेक्शन के चलता है (ऐप को साइन इन करने के लिए कनेक्शन चाहिए)।
बिल्ट-इन Git के साथ, PocketCode आपके फ़ोन पर रोज़ का Git वर्कफ़्लो देता है। PocketCode एडिटर छोड़े बिना कमिट करें, ब्रांच प्रबंधित करें और अपनी टीम के साथ सहयोग करें। जो नहीं है: SSH remotes, Git LFS, submodule, commit signing और hooks।
कोड एडिटर
इस पर त्वरित जवाब
PocketCode आज़माने के लिए तैयार हैं?
ऐप डाउनलोड करें और अपने फ़ोन से कोडिंग शुरू करें।