सामग्री पर जाएं
GitTree

पाठ 4 · नींव

अपना पाठ्यक्रम भंडार बनाएं, फिर क्लोन और ओपन में अंतर करें

GitTree की नई टैब स्क्रीन से सुविधाएं बनाएं और सत्यापित करें कि इसमें अभी तक कोई प्रतिबद्धता नहीं है। फिर यह देखने के लिए एक अलग स्थानीय क्लोन बनाएं कि फ़ोल्डर खोलना, इतिहास प्रारंभ करना और रिपॉजिटरी की प्रतिलिपि बनाना अलग-अलग क्रियाएं क्यों हैं।

प्रगति इस ब्राउज़र में सहेजी गई.

चलाने से YouTube से वीडियो लोड होता है (गोपनीयता-उन्नत मोड)।

अंग्रेजी कथन · English and Arabic कैप्शन

वीडियो पेज खोलेंयूट्यूब पर देखें

आप क्या सीखेंगे

  • स्पष्ट शाखा नाम के साथ GitTree के अंदर पहला कोर्स रिपॉजिटरी प्रारंभ करें।
  • पहली प्रतिबद्धता का आविष्कार किए बिना एक अजन्मी शाखा को पहचानें।
  • काल्पनिक पहचान को केवल पाठ्यक्रम भंडार में सहेजें।
  • उसी खाली रिपॉजिटरी को एक अलग फ़ोल्डर में क्लोन करें और उसके मूल की जांच करें।
  • कोई अन्य रिपॉजिटरी बनाए या कॉपी किए बिना मूल को दोबारा खोलें।

शुरू करने से पहले

जहां पाठ 2 और 3 समाप्त होते हैं वहां से प्रारंभ करें: Git उपलब्ध है, और कोई पाठ्यक्रम भंडार मौजूद नहीं है। पाठ 2 का पूर्वावलोकन किया गया GitTree डेमो; इसने वैश्विक कॉन्फ़िगरेशन को सहेजा नहीं। आपको पाठ्यक्रम कार्य के लिए आरक्षित एक मौजूदा, लिखने योग्य मूल फ़ोल्डर की आवश्यकता है। मौजूदा स्रोत चेकआउट के बाहर, बच्चा gittree-features नया या खाली होना चाहिए। इस वेब रिपॉजिटरी या किसी निजी प्रोजेक्ट के अंदर आरंभीकरण न करें।

निरीक्षण किए गए न्यूनतम 2.39.0 को पूरा करते हुए Git का उपयोग करें। वीडियो में कमांड और स्क्रीन को एक निजी होम फ़ोल्डर में Git 2.52.0 और GitTree 2.0 के साथ Ubuntu 24.04 पर रिकॉर्ड किया गया था, और इस आलेख में जांच उन रिपॉजिटरी के विरुद्ध की गई थी जो रिकॉर्डिंग द्वारा बनाई गई थीं। वे macOS या Windows पर नहीं चलाये गये। डिफ़ॉल्ट शॉर्टकट्स में कमांड का उपयोग macOS पर और Ctrl का उपयोग Windows और Linux पर होता है; मूल फ़ोल्डर चयनकर्ता हर सिस्टम पर अलग दिखता है और उसे फिल्माया नहीं गया था।

एक बार जब आप GitTree में साइन इन हो जाते हैं, तो इन स्थानीय वर्कफ़्लो को किसी प्रदाता एकीकरण, प्रो या परीक्षण की आवश्यकता नहीं होती है: निःशुल्क योजना उन्हें कवर करती है। क्लोन उसी मशीन पर file:// यूआरएल का उपयोग करता है, न कि होस्ट किए गए GitLab या क्लाउड क्रेडेंशियल्स का।

संकल्पना

Init चुनी गई निर्देशिका के लिए Git रिपॉजिटरी मेटाडेटा बनाता है। यह केवल इसलिए कोई प्रतिबद्धता नहीं बनाता क्योंकि शाखा का नाम मौजूद है। एक नए साधारण रिपॉजिटरी में एक वर्किंग-ट्री डायरेक्टरी और एक प्रारंभिक खाली इंडेक्स होता है। HEAD प्रतीकात्मक रूप से refs/heads/main नाम दे सकता है, इससे पहले कि उस शाखा को इंगित करने के लिए कोई प्रतिबद्धता हो: एक unborn branch।

Clone किसी स्रोत से भिन्न रिपॉजिटरी बनाता है। आम तौर पर यह सुलभ इतिहास की प्रतिलिपि बनाता है और चयनित स्रोत शाखा की जांच करता है, जबकि origin नामक रिमोट रिकॉर्ड करता है। यहां स्रोत जानबूझकर खाली है, इसलिए कॉपी करने के लिए कोई इतिहास या कामकाजी सामग्री नहीं है। यह एक वैध एज केस है, असफल अपलोड नहीं।

Open निरीक्षण के लिए GitTree में मौजूदा रिपॉजिटरी का चयन करता है। किसी टैब को खोलना उसकी फ़ाइलों की क्लोनिंग करना, कमिट बनाना या होस्टिंग सेवा जोड़ना नहीं है। ऐप अपनी हालिया/कार्यक्षेत्र स्थिति को अपडेट कर सकता है और ट्रस्ट जांच अलग से कर सकता है।

तीन क्रियाएं एक नई नोटबुक बनाने, एक अलग प्रतिलिपि बनाने और एक मौजूदा नोटबुक को अपने डेस्क पर रखने जैसी हैं। सादृश्य को अनुमतियों में विस्तारित न करें: एक रिपॉजिटरी की सेटिंग्स या हुक प्रोग्राम निष्पादित कर सकते हैं, इसलिए GitTree "ओपन" को बिना शर्त निष्पादन अनुमति के रूप में मानने के बजाय उनके विश्वास की समीक्षा करता है।

इस पाठ में कार्रवाईकार्यशील वृक्ष/सूचकांकस्थानीय रेफरीरिमोट रेफरी/कॉन्फ़िगरेशन
मूल को मुख्य से आरंभ करेंनया साधारण वर्कट्री; कोई प्रोजेक्ट फ़ाइल या अनुक्रमित प्रविष्टियाँ नहींप्रतीकात्मक सिर नाम अजन्मे मुख्य; कोई प्रतिबद्ध टिप नहींकोई रिमोट कॉन्फ़िगर नहीं किया गया
स्थानीय डेमो पहचान सहेजेंकोई फ़ाइल/सूचकांक/इतिहास सामग्री नहीं बदलतीकोई रेफरी परिवर्तन नहींमूल रिपॉजिटरी कॉन्फ़िगरेशन में केवल user.name/user.email लिखता है
मूल को एक अलग फ़ोल्डर में क्लोन करेंकॉपी में नया खाली वर्कट्री/इंडेक्सअभी भी कोई प्रतिबद्धता नहीं हैप्रतिलिपि का मूल मूल की ओर इंगित करता है; अभी तक कोई रिमोट-ट्रैकिंग शाखा टिप मौजूद नहीं है
मूल पुनः खोलेंमौजूदा मूल का चयन करता है; कोई दोहराव नहींकोई प्रतिबद्धता/रेफरी निर्माण नहींरिमोट के बिना मूल रहता है

एक खाली भंडार सामान्य कामकाजी फ़ाइलों के बिना इतिहास का भंडारण है। यह बाद के सर्वर अभ्यासों में उपयोगी है, लेकिन इस लैंडिंग पृष्ठ के निर्माण के लिए यह गलत विकल्प है। वैकल्पिक .gitignore/लाइसेंस टेम्पलेट अप्रतिबद्ध फ़ाइलें बनाएंगे; उन्हें इस चौकी को संरक्षित करने से मना करें।

मूल शब्दार्थ के लिए, git-init और git-clone देखें। ऐप की खाली/नई-गंतव्य जांच मौजूदा रिपॉजिटरी को फिर से शुरू करने की मूल Git की क्षमता से अधिक सख्त है। यह समझे बिना कि यह किस चीज़ की सुरक्षा करता है, किसी ऐप को अस्वीकार करने से बचने के लिए टर्मिनल का उपयोग न करें।

GitTree में - विहित प्रथम आरंभीकरण

actual current-source labels नया टैब कार्ड Init, डायलॉग Initialize a repository, सबमिट Initialize हैं। पुरानी योजना में "इनिट ए रिपॉजिटरी" वर्णनात्मक था, वर्तमान बटन टेक्स्ट नहीं।

  1. New Tab (tab.new), Command+T / Ctrl+T चुनें। Open, Clone और Init कार्ड की अपेक्षा करें।
  2. Init क्लिक करें. सबमिट करने से पहले कोई परिवर्तन सहेजे नहीं जाने पर, Initialize a repository की अपेक्षा करें। वैकल्पिक: Command Palette… Command+Shift+P / Ctrl+Shift+P → Initialize Repository… (repo.init) के साथ। Init के लिए कोई प्रत्यक्ष डिफ़ॉल्ट शॉर्टकट का दावा नहीं किया गया है।
  3. Location में, आरक्षित मौजूदा पैरेंट के अंतर्गत अपनी नई gittree-features निर्देशिका का पूरा पथ टाइप करें। आप Browse… का उपयोग कर सकते हैं, फिर मूल चयनकर्ता Choose where to create the repository का उपयोग कर सकते हैं; देशी ओएस चयनकर्ता बटन का आविष्कार यहां नहीं हुआ है। ब्राउज़ करने के बाद अंतिम पूर्ण स्थान दोबारा जांचें।
  4. Initial branch से main पर सेट करें. Bare repository (history only, no working files) off रखें।
  5. जब वे टेम्प्लेट नियंत्रण लोड हो जाएं तो .gitignore template और Licence को None पर सेट करें। उनकी चूक कोई चयन नहीं है; यदि नियंत्रण अनुपस्थित हैं, तो चुपचाप फ़ाइलें कहीं और न जोड़ें। Open after creating on रखें।
  6. स्थान की समीक्षा करें, मुख्य, बेअर ऑफ, टेम्प्लेट कोई नहीं और ओपन-आफ्टर ऑन। एक बार Initialize चुनें. अपेक्षा करें कि रिपॉजिटरी संभवतः सामान्य ट्रस्ट वर्कफ़्लो के माध्यम से बनाई और खोली जाएगी। पेंडिंग के दौरान बार-बार प्रेस न करें.
  7. यदि Trust this repository? प्रकट होता है, तो उसके वास्तविक पथ और निष्कर्षों की समीक्षा करें। Cancel इसे खुला छोड़ देता है; Open in Restricted Mode संचालन को सीमित करता है; Trust and Open सामान्य रिपॉजिटरी सेटिंग्स/हुक की अनुमति देता है। इस स्व-निर्मित सैंडबॉक्स के लिए, निष्कर्ष समझने के बाद ही ट्रस्ट और ओपन चुनें। रिकॉर्डिंग में, नए फ़ोल्डर के लिए कोई ट्रस्ट प्रॉम्प्ट दिखाई नहीं दिया; यह अपेक्षा न करें कि प्रत्येक ताज़ा रिपॉजिटरी यह संवाद दिखाएगी।
  8. पुष्टि करें कि टैब मूल gittree-features है, मूल या समान नाम वाली प्रति नहीं। इसके ग्राफ़ में अभी तक कोई प्रतिबद्धता नहीं है। खाली स्थिति को हटाने के लिए प्रारंभिक "क्लीनअप" प्रतिबद्धता न बनाएं।

रिपॉजिटरी-स्थानीय काल्पनिक पहचान सहेजें

  1. मूल सक्रिय के साथ, Preferences (app.preferences.open), Command+, / Ctrl+, खोलें।
  2. रिपॉजिटरी-विशिष्ट नेविगेशन अनुभाग में, gittree-features चुनें। वह डायनामिक रिपॉजिटरी नाम है, वैश्विक प्रोफ़ाइल पृष्ठ नहीं। कम चौड़ाई में इसका पेज-पिकर लेबल Repo-Specific: gittree-features है।
  3. Name for commits ढूंढें (सेटिंग repo.userName, गिट कुंजी का समर्थन करते हुए user.name)। इसके Writes to के अंतर्गत, Local (this repository) चुनें या सत्यापित करें। Global (every repository) न चुनें.
  4. GitTree Demo दर्ज करें और पंक्ति का Apply चुनें। वैकल्पिक रूप से, उस फ़ील्ड में Enter दबाएँ। जारी रखने से पहले Saved तक प्रतीक्षा करें।
  5. Email for commits (repo.userEmail, समर्थन user.email) के लिए, उसी स्थानीय लक्ष्य को सत्यापित करें, demo@example.com दर्ज करें, फिर Apply दर्ज करें या दर्ज करें। सहेजे जाने की प्रतीक्षा करें.
  6. Exit Preferences चुनें. उम्मीद करें कि मूल भंडार अभी भी सक्रिय है और इसका इतिहास अभी भी खाली है। स्थानीय कॉन्फ़िगरेशन बदल गया, कार्यशील फ़ाइलें या ग्राफ़ नहीं।

अकेले टाइप करने से एक ड्राफ्ट निकल जाता है। गंदे फ़ील्ड में Escape पहले उस ड्राफ्ट को रद्द करता है; यह कोई गारंटीशुदा "सब कुछ छोड़ दो" शॉर्टकट नहीं है। स्पष्ट लागू/स्थानीय लक्ष्य के कारण यह चरण पाठ 2 के रद्द किए गए पूर्वावलोकन से भिन्न है।

टर्मिनल में - ऐप परिणाम सत्यापित करें

पथों के चारों ओर उद्धरण रखते हुए, <course-parent> को अपने स्वयं के आरक्षित पूर्ण मूल पथ से बदलें। इन्हें ऐप इनिशियलाइज़ेशन के बाद चलाएँ, वेब चेकआउट में नहीं:

Command · bash
cd "<course-parent>/gittree-features"
git rev-parse --is-inside-work-tree
git rev-parse --is-bare-repository
git symbolic-ref --short HEAD

देखे गए क्वेरी परिणाम, क्रम में:

आउटपुट
true
false
main

साबित करें कि कोई प्रतिबद्धता मौजूद नहीं है:

Command · bash
git rev-parse --verify --quiet HEAD

अवलोकन किया गया: no stdout or stderr; exit status 1। वह अपेक्षित अजन्मा-शाखा परिणाम है, भ्रष्टाचार निदान नहीं। प्रतीकात्मक शीर्ष और संशोधन सत्यापन अलग-अलग प्रश्नों के उत्तर देते हैं।

फ़ाइलों, अनुक्रमणिका और दूरस्थ नामों का निरीक्षण करें:

Command · bash
git status --short
git ls-files
git remote

प्रत्येक कमांड ने फिक्स्चर में no output and exited 0 उत्पन्न किया। ये प्रश्न अकेले यह साबित नहीं करते कि हर उपेक्षित फ़ाइल अनुपस्थित है। अपने फ़ाइल प्रबंधक में, दिखाई देने वाली छिपी हुई वस्तुओं के साथ आरक्षित फ़ोल्डर का निरीक्षण करें: इसमें रिपॉजिटरी मेटाडेटा .git होना चाहिए, लेकिन अभी तक कोई प्रोजेक्ट फ़ाइल नहीं है। .git के अंदर कुछ भी संपादित न करें।

केवल दो स्पष्ट स्थानीय पहचान फ़ील्ड पढ़ें:

Command · bash
git config --local --get user.name
git config --local --get user.email

अवलोकन किया गया:

आउटपुट
GitTree Demo
demo@example.com

किसी व्यक्तिगत/वैश्विक कॉन्फ़िगरेशन डंप की आवश्यकता नहीं है।

मूल आरंभीकरण विकल्प - दूसरा विहित प्रारंभ नहीं

separate disposable comparison copy, या ऐप के बिना Git का अध्ययन करने वाले किसी व्यक्ति के लिए मूल समकक्ष है:

Command · bash
cd "<course-parent>"
git init --quiet --initial-branch=main --template= gittree-features

इसने कोई आउटपुट नहीं मुद्रित किया और पृथक फिक्स्चर में 0 से बाहर निकल गया। Do not rerun it on the original already created in GitTree. खाली मूल टेम्पलेट विकल्प Git की टेम्पलेट निर्देशिका को नियंत्रित करता है; यह ऐप का वैकल्पिक .gitignore/licence चयनकर्ता नहीं है। एक सामान्य मशीन पर, विरासत में मिले टेम्प्लेट/सेटिंग्स की अभी भी समीक्षा की जानी चाहिए।

यदि ऐप पंक्ति के बजाय मूल पथ द्वारा पहचान सेट कर रहे हैं, तो पहले नई रिपॉजिटरी का चयन करें और जानबूझकर केवल स्थानीय कॉन्फ़िगरेशन लिखें:

Command · bash
cd "<course-parent>/gittree-features"
git config --local user.name "GitTree Demo"
git config --local user.email demo@example.com

दोनों लेख अलग-अलग सत्यापन प्रति में मौन सफल संचालन थे। वे ऐप लिखने के विकल्प हैं, ऐप लेने की पुष्टि करना छोड़ने का कोई बहाना नहीं।

एक अलग स्थानीय प्रति क्लोन करें

यह छोटा सा अतिरिक्त अभ्यास उसी प्रोजेक्ट का उपयोग करता है, दूसरे डेमो एप्लिकेशन का नहीं। original stays the course checkpoint और पाठ 5 से पहले फिर से सक्रिय होना चाहिए। यह मूल में जोड़ा गया रिमोट नहीं है।

GitTree में

  1. नया टैब खोलें, फिर Clone। वैकल्पिक पैलेट: Clone Repository… (repo.clone)। Clone a repository की अपेक्षा करें.
  2. Choose Clone with URL. In Repository URL, enter the original's absolute local URL, for example file:///absolute/course-parent/gittree-features, replacing that example with your actual reserved path. The app's URL parser accepts absolute file URLs; a raw local path is not its supported input. Use a simple sandbox path without spaces for this first exercise; URL encoding and Windows drive syntax need their own platform recheck.
  3. Parent folder में, वही मौजूदा पाठ्यक्रम अभिभावक चुनें। Folder name में, स्पष्ट रूप से gittree-features-copy दर्ज करें। कॉपी पर Clones into अंक जांचें, not the original।
  4. संपूर्ण इतिहास के लिए Depth खाली छोड़ें; Also clone submodules, Sparse checkout: only the top-level files at first, then the folders you choose और Download file contents only when they are needed (blobless) को बंद रखें। Open after cloning चालू रखें.
  5. एक बार Clone चुनें. इस खाली स्थानीय स्रोत के लिए वास्तविक क्लोन प्रगति या तेजी से पूरा होने की अपेक्षा करें, फिर प्रतिलिपि किसी भी आवश्यक ट्रस्ट समीक्षा के माध्यम से खुलती है। इस बात पर ज़ोर न दें कि इतने छोटे ऑपरेशन के लिए हर प्रगति चरण दिखाई दे रहा है।
  6. कॉपी के खाली ग्राफ़ का निरीक्षण करें और नीचे दिए गए टर्मिनल चेक का उपयोग करें। इसका origin मूल की ओर इशारा करते हुए, the copy से संबंधित है। कॉन्फ़िगर किया गया मूल कोई मौजूदा रिमोट-ट्रैकिंग शाखा या होस्टेड प्रदाता नहीं है।
  7. वापस लौटने के लिए, नए टैब से Open या Open Repository… (repo.open), Command+O / Ctrl+O चुनें, मूल gittree-features फ़ोल्डर का चयन करें और किसी भी आवश्यक ट्रस्ट प्रॉम्प्ट की समीक्षा करें। इसके बजाय रिकॉर्डिंग में नए टैब पर Recent में मूल की पंक्ति पर Open बटन का उपयोग किया गया, जिससे यह उसी तरह खुल गया; सिस्टम चयनकर्ता को फिल्माया नहीं गया था. वैकल्पिक रूप से, उस मूल फ़ोल्डर को नए टैब की फ़ोल्डर-ड्रॉप सतह पर छोड़ें (फिल्माया नहीं गया)। मूल चयनित/खुले होने की अपेक्षा करें; यह वादा न करें कि वर्तमान बिल्ड एक टैब का पुन: उपयोग करता है या दूसरा बनाता है।
  8. पूरक प्रति को अछूता रखें। जारी रखने के लिए आपको इसे हटाने की आवश्यकता नहीं है. पाठ 5 से पहले पुष्टि करें कि मूल में अभी भी कोई रिमोट नहीं है और स्थानीय डेमो पहचान है।

मूल तुलना और परिणाम

आरक्षित माता-पिता से, separate take where the destination does not exist में:

Command · bash
git clone --quiet "file://<absolute-source-path>" gittree-features-copy

Here <absolute-source-path> starts with / on the macOS recording, making a URL with three slashes after file:. Replace the placeholder; do not type the angle brackets. The exact observed stderr, despite a successful exit 0:

आउटपुट
warning: You appear to have cloned an empty repository.

अब कॉपी पर सवाल उठाएं:

Command · bash
cd "<course-parent>/gittree-features-copy"
git remote
git symbolic-ref --short HEAD
git config --local --get user.name

पहले दो देखे गए आउटपुट:

आउटपुट
origin
main

अंतिम क्वेरी कुछ भी प्रिंट नहीं करती है और 1 से बाहर निकलती है: क्लोनिंग ने मूल के स्थानीय user.name कॉन्फ़िगरेशन की प्रतिलिपि नहीं बनाई है। एक बाहरी वैश्विक सेटिंग अभी भी आपकी वास्तविक मशीन पर एक प्रभावी पहचान प्रदान कर सकती है; local क्वेरी जानबूझकर केवल वही उत्तर देती है जो इस क्लोन में है। सभी वैश्विक कॉन्फ़िगरेशन को कैमरे पर न पढ़ें। हम कॉपी के अंदर प्रतिबद्ध नहीं हैं.

नतीजा

इस पाठ के अंत में, मूल एक सामान्य भंडार है जिसमें प्रतीकात्मक अजन्मा मुख्य, कोई कमिट नहीं, कोई प्रोजेक्ट फ़ाइलें नहीं, एक खाली तार्किक सूचकांक, कोई रिमोट नहीं, और स्थानीय पहचान GitTree डेमो / डेमो@example.com है। वैकल्पिक पूरक क्लोन की उत्पत्ति तो है लेकिन कोई इतिहास नहीं; यह सतत परियोजना चौकी के बाहर है।

डिज़ाइन के अनुसार ग्राफ़ खाली रहता है। पाठ 5 README.md और Index.html बनाता है और पहली जानबूझकर प्रतिबद्धता बनाता है।

सामान्य गलतियाँ

  • Choosing the parent instead of the new child: किसी भी कॉन्फ़िगरेशन को लिखने से पहले स्थान और सक्रिय टैब को सत्यापित करें।
  • Choosing bare mode: एक खाली भंडार लैंडिंग पृष्ठ की सामान्य कामकाजी फ़ाइलें प्रदान नहीं करता है।
  • Adding templates: वे अनट्रैक की गई फ़ाइलें पेश करते हैं जो इस खाली चेकपॉइंट से संबंधित नहीं हैं।
  • Treating unborn HEAD as corrupt: कमिट के बिना प्रतीकात्मक मुख्य init के तुरंत बाद सामान्य है।
  • Cloning onto the original: गंतव्य एक अलग नया/खाली फ़ोल्डर होना चाहिए।
  • Assuming clone copies local identity: यह रिपॉजिटरी इतिहास की प्रतिलिपि बनाता है, मूल के स्थानीय user.name/user.email की नहीं।
  • Continuing in the copy: इसकी उत्पत्ति इसकी स्थिति को विहित मूल से भिन्न बनाती है।

अगर कुछ गलत होता है

एक गैर-रिक्त गंतव्य इनकार का मतलब है कि GitTree ने एक मौजूदा फ़ोल्डर को सुरक्षित कर दिया है। एक नया खाली बच्चा चुनें; त्रुटि को शांत करने के लिए इसकी सामग्री को न हटाएं। "जिस फ़ोल्डर में यह होना चाहिए वह मौजूद नहीं है" का अर्थ है कि आपको पुनः प्रयास करने से पहले जानबूझकर आरक्षित पैरेंट को बनाना/चयन करना होगा।

यदि कोई रिपॉजिटरी पहले से मौजूद है, तो open it और उसका निरीक्षण करें; पाठ्यक्रम को ताज़ा दिखाने के लिए इसे पुनः प्रारंभ न करें। यदि यह असंबंधित कार्य है, तो इसे अपरिवर्तित छोड़ दें और एक अलग पाठ्यक्रम फ़ोल्डर चुनें।

यदि क्लोन विफल हो जाता है, तो वास्तविक त्रुटि और सफ़ाई परिणाम पढ़ें। GitTree एक हटाए गए क्लोन-स्वामित्व वाले फ़ोल्डर, एक संरक्षित पूर्व-मौजूदा फ़ोल्डर, अप्रत्याशित अतिरिक्त सामग्री और सफाई विफलता को अलग करता है। Cancel Clone रद्द करने का अनुरोध; यह इस बात का सबूत नहीं है कि हर बाइट गायब हो गई। कुछ भी हटाने से पहले रखी गई सामग्री का निरीक्षण करें। खाली-स्रोत चेतावनी अकेले विफलता नहीं है।

यदि ट्रस्ट के निष्कर्ष अपरिचित हैं, तो रद्द करें या प्रतिबंधित मोड चुनें। किसी पाठ को पूरा करने के लिए किसी मनमाने भंडार पर पूरी तरह भरोसा न करें। प्रतिबंधित मोड नेटवर्क परिचालन को अक्षम कर देता है और वर्किंग-ट्री क्रियाओं को सीमित कर सकता है।

अपनी समझ की जाँच करें

प्रत्येक प्रश्न का उत्तर दें, फिर क्यों पढ़ें। "आवश्यक" चिह्नित प्रश्न पाठ को पूरा करने में गिने जाते हैं।

  1. प्रश्न 1 में से 6

    पाठ्यक्रम भंडार पहले से ही डिस्क पर मौजूद है। कौन सी क्रिया इसे बिना कॉपी किए प्रदर्शित करती है?

    एक उत्तर चुनें.

  2. प्रश्न 2 में से 6

    कौन से विकल्प इच्छित मूल चेकपॉइंट को सुरक्षित रखते हैं?

    लागू होने वाला प्रत्येक उत्तर चुनें.

  3. प्रश्न 3 में से 6
    आवश्यक

    प्रतीकात्मक-रेफ प्रिंट मुख्य; सत्यापित करें --quiet HEAD आरंभीकरण के बाद चुपचाप 1 से बाहर निकल जाता है। इसका क्या मतलब है?

    एक उत्तर चुनें.

  4. प्रश्न 4 में से 6
    आवश्यक

    एक अलग ताज़ा आरंभीकरण में, बिना कमिट किए मुख्य के बजाय ट्रंक चुनें। Symbolic-ref --short HEAD क्या प्रिंट करता है?

    एक उत्तर चुनें.

  5. प्रश्न 5 में से 6

    खाली स्रोत की चेतावनी के साथ खाली मूल की क्लोनिंग सफल हो जाती है। कौन से कथन सही हैं?

    लागू होने वाला प्रत्येक उत्तर चुनें.

  6. प्रश्न 6 में से 6
    आवश्यक

    मूल पर लौटें और केवल नामित प्रश्नों का निरीक्षण करें। कौन से साक्ष्य सहमत होने चाहिए?

    लागू होने वाला प्रत्येक उत्तर चुनें.

6 में से 0 सही

पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें।

इस ब्राउज़र में चेक किया गया.

अभ्यास करें

Open Repository… या फ़ोल्डर ड्रॉप के माध्यम से मूल को पुनः खोलें। तीन राज्य क्वेरी चलाएँ, गुम HEAD कमिट, खाली स्थिति/सूचकांक/दूरस्थ क्वेरी और दो स्थानीय पहचान मान सत्यापित करें। बताएं कि क्यों main बिना कमिट के दिखाई देता है और क्यों पूरक प्रतिलिपि, यदि बनाई गई है, तो मूल है लेकिन मूल नहीं है।

Changed-input prediction: यदि एक अलग नया आरंभीकरण Initial branch = trunk का उपयोग करता है, तो भविष्यवाणी करें git symbolic-ref --short HEAD। यह trunk प्रिंट करता है; यह अभी भी कोई प्रतिबद्धता नहीं बनाता है। इसे एक अन्य पृथक देशी फिक्स्चर में जांचा गया था। भविष्यवाणी करने के लिए जारी पाठ्यक्रम की मुख्य शाखा का नाम न बदलें।

आपकी अपनी पुष्टि: साइट आपका कंप्यूटर नहीं देख सकती।

पाठ को पूरा करने के लिए आवश्यक प्रश्नों के सही उत्तर दें और व्यावहारिक अभ्यास की पुष्टि करें।

पुनर्कथन

  • Init रिपॉजिटरी मेटाडेटा बनाता है; क्लोन एक अलग प्रतिलिपि बनाता है; ओपन मौजूदा डेटा का चयन करता है।
  • एक नया मुख्य अजन्मा हो सकता है: कोई पहली प्रतिबद्धता निहित नहीं है।
  • स्थानीय पहचान और पूरक-क्लोन स्थिति को वैश्विक सेटिंग्स और विहित परियोजना से अलग रखें।

शब्दावली शब्द प्रस्तुत किये गये

आरंभीकरण - प्रारंभ; क्लोन - क्लोन; भंडार - مستودع; शाखा - فرع; दूरस्थ - दूर; काम करने वाला पेड़ - مجلد العمل; मंचन क्षेत्र - منطقة التجهيز. "अजन्मी शाखा" का अर्थ है पहली प्रतिबद्धता के बिना शाखा का नाम; HEAD और मूल शाब्दिक पहचानकर्ता बने हुए हैं।

वीडियो प्रतिलेख

वीडियो का वर्णन, संकेत दर संकेत।

प्रतिलिपि दिखाएँ
  1. फिर पाठ्यक्रम भंडार बनाएँ क्लोनिंग को खोलने से अलग करें।
  2. बाहर आरक्षित पैरेंट फ़ोल्डर का उपयोग करें मौजूदा स्रोत भंडार।
  3. नया इतिहास आरंभ करें, एक अलग क्लोन करें रिपॉजिटरी, या किसी मौजूदा को खोलें।
  4. GitTree के अंदर प्रारंभ करें नई टैब स्क्रीन पर.
  5. इनिट चुनें. संवाद की समीक्षा करें कुछ भी बनाने से पहले.
  6. का पूरा पथ दर्ज करें नया गिटट्री-फीचर्स फ़ोल्डर।
  7. मूल फ़ोल्डर चयनकर्ता एक है वैकल्पिक; अंतिम स्थान पुनः जांचें.
  8. इसके बजाय स्पष्ट रूप से मुख्य चुनें मशीन डिफॉल्ट पर निर्भर रहना।
  9. इसके लिए बेअर मोड को बंद रखें प्रोजेक्ट को कार्यशील फ़ाइलों की आवश्यकता है।
  10. दोनों वैकल्पिक टेम्पलेट अस्वीकार करें खाली चौकी को संरक्षित करने के लिए.
  11. सक्षम बनाने के बाद खुला रखें, फिर हर विकल्प की समीक्षा करें.
  12. एक बार इनिशियलाइज़ करें और प्रतीक्षा करें वास्तविक भंडार परिणाम.
  13. यदि विश्वास समीक्षा प्रकट होती है, तो पढ़ें भरोसा देने से पहले निष्कर्ष।
  14. मूल मौजूद है, लेकिन इसकी पहली प्रतिबद्धता नहीं है.
  15. HEAD पहले मुख्य नाम दे सकता है मुख्य को इंगित करने के लिए एक प्रतिबद्धता है।
  16. इस रिपॉजिटरी की प्राथमिकताएँ खोलें पेज, वैश्विक प्रोफ़ाइल पेज नहीं।
  17. पहले लिखने का लक्ष्य जांचें काल्पनिक पहचान टाइप करना।
  18. Apply GitTree Demo as this repository's commit name.
  19. काल्पनिक ईमेल लागू करें उसी स्थानीय दायरे में.
  20. Enter एक फ़ील्ड भी लागू कर सकता है। बाहर निकलें दोनों लेखन सफल होने के बाद ही।
  21. जांचें कि आप अंदर हैं मूल कार्यशील वृक्ष.
  22. बेअर-रिपॉजिटरी जांच झूठी होनी चाहिए।
  23. प्रतीकात्मक शाखा चेक को मुख्य प्रिंट करना चाहिए।
  24. अभी तक कोई प्रतिबद्धता हल नहीं हुई है. चुप यहां से बाहर निकलने की उम्मीद है।
  25. ये तीन निरीक्षण कोई आउटपुट नहीं देना चाहिए.
  26. केवल दो स्थानीय पहचान पढ़ें मान, निजी वैश्विक सेटिंग नहीं।
  27. नेटिव गिट भी इनिशियलाइज़ कर सकता है, लेकिन नहीं ऐप-निर्मित मूल को पुनः प्रारंभ करें।
  28. अब इसी खाली रिपॉजिटरी को कॉपी करें एक अलग स्थानीय फ़ोल्डर में.
  29. क्लोन खोलें और यूआरएल पथ का उपयोग करें प्रदाता खाता सूची के बजाय।
  30. के लिए एक संपूर्ण फ़ाइल URL का उपयोग करें मूल, कच्चा स्थानीय पथ नहीं।
  31. गंतव्य को स्पष्ट रूप से नाम दें और पुष्टि करें कि यह मूल नहीं है।
  32. पूर्ण-इतिहास डिफ़ॉल्ट रखें और उन्नत क्लोन विकल्प बंद रखें।
  33. क्लोन चलाएँ और जाने दें वास्तविक प्रगति समाप्त.
  34. एक खाली स्रोत बिना एक प्रति उत्पन्न करता है प्रतिबद्ध; वह अभी भी सफल हो सकता है.
  35. रिक्त-भंडार चेतावनी यह अपने आप में विफलता नहीं है.
  36. प्रतिलिपि में मूल और अजन्मा होता है मुख्य, होस्ट की गई पाइपलाइन नहीं।
  37. क्लोनिंग ने मूल की नकल नहीं की स्थानीय प्रतिबद्ध-नाम सेटिंग।
  38. उत्पत्ति प्रतिलिपि से संबंधित है। द मूल को रिमोट नहीं मिला।
  39. मूल को फिर से खोलें पाठ्यक्रम जारी रखने से पहले.
  40. मौजूदा फ़ोल्डर को हटाना है इसे खोलने का दूसरा तरीका, क्लोन करने का नहीं।
  41. मूल को दोबारा जांचें: कोई रिमोट नहीं, कोई प्रतिबद्धता नहीं, और स्थानीय डेमो पहचान।
  42. ट्रंक के साथ एक अलग आरंभीकरण रिपोर्ट ट्रंक, फिर भी बिना प्रतिबद्धता के।
  43. एक गंतव्य इनकार सुरक्षा करता है मौजूदा सामग्री. एक नया फ़ोल्डर चुनें.
  44. यदि कोई क्लोन विफल हो जाता है या रद्द कर दिया जाता है, पढ़ें कि वास्तव में क्या सफ़ाई बरकरार रखी गई।
  45. पूर्ववत करें और रीफ्लॉग करें, रोलबैक का वादा नहीं किया गया है आरंभीकरण या पहचान सेटिंग्स के लिए।
  46. Init मेटाडेटा बनाता है, क्लोन बनाता है कॉपी करें, और खोलें मौजूदा डेटा का चयन करता है।
  47. मूल की स्थिति सत्यापित करें पहली फ़ाइलें जोड़ने से पहले.
  48. इसके बाद, हीरो बनाएं और बनाएं पहली जानबूझकर प्रतिबद्धता.