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

पाठ 7 · रोजमर्रा का काम

चयनित हंक को प्रतिबद्ध करें, संपूर्ण फ़ाइल को नहीं

बाद के लिए एक अलग कार्ड-त्रिज्या संपादन छोड़ते हुए एक शीर्षक और एक व्यापक नायक तैयार करें। फ़ाइल, हंक और लाइन चयन का जानबूझकर उपयोग करें, फिर सटीक तैयार और शेष सीएसएस साबित करें।

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

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

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

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

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

  • किसी विशिष्ट प्रतिबद्धता के लिए फ़ाइल, हंक या लाइन स्कोप चुनें।
  • प्रतिस्थापन के लिए हटाई गई/जोड़ी गई दोनों पंक्तियों का चयन करें।
  • सूचकांक और कामकाजी सामग्री को स्वतंत्र रूप से पढ़ें।
  • पाठ 8 के लिए अप्रतिबद्ध त्रिज्या संपादन को बनाए रखें।

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

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

संकल्पना

A file can contain several independent decisions. A hunk groups nearby textual changes, not necessarily one business intention. Selecting a replacement requires the removed old line and the added new line; choosing only the addition can create a different patch.

सूचकांक एक पूर्ण अगले वृक्ष का वर्णन करता है, तब भी जब आप केवल कुछ परिवर्तित पंक्तियों का चयन करते हैं। यहां HEAD में CSS-01 है, इंडेक्स CSS-02-INDEX बन जाता है, और वर्किंग CSS CSS-02-वर्किंग रहता है। संपादन सहेजने से कार्यशील बाइट्स बदल जाते हैं; Stage Lines सूचकांक बदलता है; सामान्य प्रतिबद्धता मुख्य चलती है लेकिन शेष त्रिज्या को अधिलेखित नहीं करती है। कोई दूरस्थ रेफरी परिवर्तन नहीं. मूल आंशिक स्टेजिंग और पैच एप्लिकेशन समान सामग्री भेद का उपयोग करते हैं।

पूर्ण संपादन और लक्ष्य निकाय

Index.html को HTML-02-HEADLINE से और वर्किंग स्टाइल.css को CSS-02-WORKING से बदलें। नीचे CSS-02-INDEX target index है, कार्यशील फ़ाइल को अधिलेखित करने के लिए कोई निकाय नहीं है।

Index.html - HTML-02-HEADLINE

फ़ाइल अंश · html
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>GitTree Features — course demo</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <header class="site-header">
    <a href="#main">GitTree Features</a>
  </header>
  <main id="main">
    <section class="hero" aria-labelledby="hero-title">
      <p class="eyebrow">GitTree Learn demo project</p>
      <h1 id="hero-title">See your work clearly.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
    <section class="features" aria-labelledby="features-title">
      <h2 id="features-title">Follow your work</h2>
      <div class="cards">
        <article class="feature-card">
          <h3>History</h3>
          <p>Read commits and branches together.</p>
        </article>
        <article class="feature-card">
          <h3>Changes</h3>
          <p>Review the exact content selected for a commit.</p>
        </article>
        <article class="feature-card">
          <h3>Recovery</h3>
          <p>Inspect the scope of a recovery point before using it.</p>
        </article>
      </div>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

स्टाइल्स.सीएसएस - सीएसएस-02-इंडेक्स

फ़ाइल अंश · css
:root {
  color-scheme: light;
  --page: #f7f8fa;
  --surface: #ffffff;
  --text: #17212e;
  --link: #154ab5;
  --line: #bac4d0;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--page);
  color: var(--text);
  font: 1rem/1.6 system-ui, sans-serif;
}

a {
  color: var(--link);
}

.site-header,
main,
footer {
  width: min(68rem, 100% - 2rem);
  margin-inline: auto;
}

.site-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1rem;
}

.hero {
  max-width: 48rem;
  padding-block: 3rem;
}

h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.2;
}

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
  gap: 1rem;
}

.feature-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.5rem;
  background: var(--surface);
}

section {
  margin-block-end: 2rem;
}

button,
input {
  font: inherit;
}

button,
input {
  padding: 0.5rem 0.75rem;
}

:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: 3px;
}

form {
  display: grid;
  max-width: 28rem;
  gap: 0.5rem;
}

स्टाइल्स.सीएसएस - सीएसएस-02-वर्किंग

फ़ाइल अंश · css
:root {
  color-scheme: light;
  --page: #f7f8fa;
  --surface: #ffffff;
  --text: #17212e;
  --link: #154ab5;
  --line: #bac4d0;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--page);
  color: var(--text);
  font: 1rem/1.6 system-ui, sans-serif;
}

a {
  color: var(--link);
}

.site-header,
main,
footer {
  width: min(68rem, 100% - 2rem);
  margin-inline: auto;
}

.site-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1rem;
}

.hero {
  max-width: 48rem;
  padding-block: 3rem;
}

h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.2;
}

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
  gap: 1rem;
}

.feature-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface);
}

section {
  margin-block-end: 2rem;
}

button,
input {
  font: inherit;
}

button,
input {
  padding: 0.5rem 0.75rem;
}

:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: 3px;
}

form {
  display: grid;
  max-width: 28rem;
  gap: 0.5rem;
}

GitTree में

  1. Show Files (कमांड/Ctrl+Shift+E) में, प्रत्येक मौजूदा फ़ाइल पर ध्यान केंद्रित करें और Enter करें; इसके बताए गए कार्यशील निकाय को पेस्ट करें, फिर Save या Command/Ctrl+S। कार्यशील सीएसएस पर सूचकांक लक्ष्य चिपकाएँ नहीं।
  2. Back to Graph → कमांड पैलेट… (कमांड/Ctrl+Shift+P) → Show Working Changes। Unstaged Files के अंतर्गत Index.html पर क्लिक करें।
  3. डिफ व्यू (पैलेट Show Diff as Hunks) में Hunk चुनें। शीर्षक प्रतिस्थापन पर Stage Hunk चुनें। चरणबद्ध फ़ाइलों में केवल संपूर्ण शीर्षक परिवर्तन की अपेक्षा करें। संपूर्ण-फ़ाइल Stage File केवल इसलिए समतुल्य होगी क्योंकि इस HTML में कोई अन्य संपादन नहीं है।
  4. अनस्टेज्ड फ़ाइलों के अंतर्गत style.css पर क्लिक करें। Ignore whitespace बंद रखें. पंक्ति 41 पर अधिकतम-चौड़ाई प्रतिस्थापन खोजें: 44rem → 48rem।
  5. हटाई गई max-width: 44rem; लाइन और जोड़ी गई max-width: 48rem; लाइन के लिए चेकबॉक्स का चयन करें। उनके सुलभ नामों में चिह्न, पंक्ति संख्या और पाठ शामिल हैं। चयन टूलबार में Stage Lines सक्रिय करें. पंक्ति 59 पर त्रिज्या युग्म का चयन न करें।
  6. एक अलग रीप्ले में विकल्प: Stage Hunk केवल अधिकतम-चौड़ाई वाले हंक पर यहां समान लक्ष्य दिया गया है। Split/पैलेट Show Diff Side by Side हटाई गई/जोड़ी गई कोशिकाओं को उनके उचित पुराने/नए किनारों पर रखता है; दोनों के अपने-अपने चयन नियंत्रण हैं। मुख्य टेक के लिए हंक पर लौटें।
  7. चरणबद्ध शैलियाँ.सीएसएस पर क्लिक करें: केवल अधिकतम-चौड़ाई बदलनी चाहिए। अनस्टेज्ड स्टाइल्स.सीएसएस पर क्लिक करें: केवल त्रिज्या शेष है। किसी चयन को साफ़ करने के लिए Clear का उपयोग करें, सामग्री को त्यागने के लिए नहीं। यदि आपने बहुत अधिक मंचन किया है, तो प्रासंगिक चरणबद्ध हंक और Unstage Hunk का चयन करें या चरणबद्ध प्रतिस्थापन लाइनें और Unstage Lines दोनों का चयन करें, फिर दोबारा जांचें।
  8. सारांश दर्ज करें feat: refine the hero and card spacing, सामान्य विकल्प सभी बंद करें, और Commit Changes to 2 Files (या Command/Ctrl+एक बार दर्ज करें)। आंशिक प्रतिबद्धता को सत्यापित करें और अस्थिर त्रिज्या को बनाए रखें।
  9. Stage All Changes का उपयोग न करें, त्यागें या सफ़ाई का वचन न दें। पाठ 8 जानबूझकर त्रिज्या प्रतिबद्धता का स्वामी है।

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

टर्मिनल में

दोनों संपादन सहेजने के बाद:

Command · bash
git diff -- styles.css

पूर्ण प्रेक्षित कार्य अंतर:

आउटपुट
diff --git a/styles.css b/styles.css
index d443c7e..6382365 100644
--- a/styles.css
+++ b/styles.css
@@ -38,7 +38,7 @@ footer {
 }
 
 .hero {
-  max-width: 44rem;
+  max-width: 48rem;
   padding-block: 3rem;
 }
 
@@ -56,7 +56,7 @@ h1 {
 .feature-card {
   padding: 1rem;
   border: 1px solid var(--line);
-  border-radius: 0.5rem;
+  border-radius: 0.75rem;
   background: var(--surface);
 }
 

मूल इंटरैक्टिव मार्ग: git add -p -- index.html इसके शीर्षक का चयन करता है। git add -p -- styles.css पहले हंक को स्वीकार कर सकता है और रेडियस हंक को अस्वीकार कर सकता है। Git संस्करण के अनुसार संकेत अलग-अलग होते हैं; उत्तर देने से पहले सामग्री का निरीक्षण करें, याद किए गए y/n अनुक्रम का नहीं।

एक नियतात्मक मूल समतुल्य निम्नलिखित पूर्ण पैच outside प्रोजेक्ट को <selection.patch> के रूप में सहेजना और इसे केवल सूचकांक पर लागू करना है:

फ़ाइल अंश · diff
diff --git a/styles.css b/styles.css
--- a/styles.css
+++ b/styles.css
@@ -38,7 +38,7 @@
 }
 
 .hero {
-  max-width: 44rem;
+  max-width: 48rem;
   padding-block: 3rem;
 }
 
Command · bash
git add -- index.html
git apply --cached --check "<selection.patch>"
git apply --cached "<selection.patch>"
git diff --cached -- styles.css

जाँच/लागू दोनों ही स्थिरता में चुपचाप सफल रहे। अंतिम क्वेरी मुद्रित:

आउटपुट
diff --git a/styles.css b/styles.css
index d443c7e..4dc8369 100644
--- a/styles.css
+++ b/styles.css
@@ -38,7 +38,7 @@ footer {
 }
 
 .hero {
-  max-width: 44rem;
+  max-width: 48rem;
   padding-block: 3rem;
 }
 

git show :styles.css को उपरोक्त संपूर्ण CSS-02-INDEX के बराबर होना चाहिए। कार्यशील फ़ाइल अभी भी पूर्ण CSS-02-WORKING के बराबर होनी चाहिए। न तो --cached patch कमांड कार्यशील सीएसएस लिखता है।

मूल प्रतिबद्ध विकल्प, ऐप की सफलता के बाद दोहराना नहीं:

Command · bash
git commit --quiet -m "feat: refine the hero and card spacing"
git status --short
git diff -- styles.css

शांत प्रतिबद्धता: निकास 0, कोई आउटपुट नहीं। स्थिति:

आउटपुट
 M styles.css

पूर्ण शेष कार्य अंतर:

आउटपुट
diff --git a/styles.css b/styles.css
index 4dc8369..6382365 100644
--- a/styles.css
+++ b/styles.css
@@ -56,7 +56,7 @@ h1 {
 .feature-card {
   padding: 1rem;
   border: 1px solid var(--line);
-  border-radius: 0.5rem;
+  border-radius: 0.75rem;
   background: var(--surface);
 }
 

नतीजा

इस पाठ के अंत में: मुख्य रूप से तीन वचन। HEAD/index में नया शीर्षक और व्यापक हीरो शामिल है, लेकिन त्रिज्या अभी भी 0.5rem है; कार्यशील त्रिज्या 0.75rem है। केवल style.css में कोई चरणबद्ध संशोधन नहीं है। कोई रिमोट, मर्ज या रीबेस नहीं। वैकल्पिक नोटबुक/स्वच्छ विकल्प इस चेकपॉइंट को प्रतिस्थापित नहीं करते हैं।

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

  • प्रतिस्थापन के केवल जोड़े गए आधे हिस्से का चयन करना: जरूरी नहीं कि इच्छित पैच हो।
  • संपूर्ण सीएसएस फ़ाइल को स्टेज करना: इसमें त्रिज्या भी शामिल है।
  • कार्यशील सीएसएस पर लक्ष्य-सूचकांक सीएसएस चिपकाने से जानबूझकर अलग किया गया संपादन खो जाता है।
  • अभी सफ़ाई का संकल्प लेना: पाठ 8 के आरंभिक कार्य का खंडन करता है।

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

इंडेक्स बेमेल का निदान करने के लिए कैश्ड/वर्किंग तुलनाओं का उपयोग करें। कमिट करने से पहले, अनस्टेज लाइन्स/हंक वर्किंग एडिट को छोड़े बिना चयन को बदल सकता है। यदि Git किसी विकृत या बासी पैच को अस्वीकार कर देता है, तो रुकें; उसपर ताकत नहीं लगाएं। वर्तमान फ़ाइल को दोबारा पढ़ें और सटीक सामग्री का चयन करें। एक असफल कमिट/हुक हुक को छोड़ने की अनुमति नहीं है।

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

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

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

    हंक को क्या परिभाषित करता है?

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

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

    चरण 44रेम → 48रेम के लिए, कौन सी रेखाएँ संबंधित हैं?

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

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

    आंशिक चयन के बाद, सूचकांक में चौड़ाई और त्रिज्या क्या हैं?

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

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

    यदि आप प्रतिबद्ध होने से पहले त्रिज्या का भी मंचन करते हैं, तो क्या बचता है?

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

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

    एक बाहरी सेव चयनित अंतर को बदल देता है। क्या सुरक्षित है?

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

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

    तैयार चौकी की जाँच करें। कौन से साक्ष्य मेल खाते हैं?

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

6 में से 0 सही

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

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

अभ्यास करें

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

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

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

पुनर्कथन

  • उस दायरे का चयन करें जो इच्छित परिवर्तन से मेल खाता हो।
  • पूरी तैयार फ़ाइल और बचे हुए कार्य अंतर को सत्यापित करें।
  • स्वतंत्र रूप से उपयोगी कार्य को बिना नष्ट किये अलग रखें।

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

हंक - كتلة; चयनित पंक्तियाँ — الأسطر المختارة; मंच - تجهيز; अस्थिर - إلغاء التجهيز; पैच - رقعة; सूचकांक - الفهرس.

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

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

प्रतिलिपि दिखाएँ
  1. थोड़ी देर में एक बदलाव तैयार करें अगले को संरक्षित करना.
  2. आस-पास के संपादन संबंधित हो सकते हैं अलग-अलग इरादों के लिए.
  3. शीर्षक और दोनों सीएसएस सहेजें कमिट चुनने से पहले संपादन करता है।
  4. किसी एक को चुनने से पहले दोनों परिवर्तन पढ़ें.
  5. पृथक से शुरुआत करें शीर्षक प्रतिस्थापन.
  6. इस हेडलाइन हंक को स्टेज करें, कोई असंबंधित फ़ाइल परिवर्तन नहीं.
  7. पूरा अंतर दृश्यमान रखें लाइन चयन के लिए.
  8. एक प्रतिस्थापन में शामिल है लाइनें हटाई गईं और जोड़ी गईं.
  9. चौड़ाई युग्म को चरणबद्ध करें त्रिज्या को बाहर छोड़ना।
  10. तैयार सामग्री की जाँच करें और शेष सामग्री अलग से।
  11. अस्थिर मरम्मत चयन कार्यशील पाठ को त्यागे बिना।
  12. संपूर्ण-हंक चयन समतुल्य है केवल इस सटीक हंक के लिए।
  13. चेकबॉक्स साफ़ करना नहीं है सामग्री को मंच से हटाएँ या हटाएँ।
  14. नेटिव पैच अपडेट करता है अनुक्रमणिका, कार्यशील फ़ाइल नहीं।
  15. पूर्ण चयनित सत्यापित करें फ़ाइल, केवल एक हाइलाइट नहीं।
  16. किस त्रिज्या का है तैयार स्नैपशॉट?
  17. शीर्षक और चौड़ाई प्रतिबद्ध करें, त्रिज्या को बाद के लिए छोड़ रहा हूँ।
  18. शेष सीएसएस संपादित करें इच्छित परिणाम है.
  19. अगला पाठ रिकॉर्ड करेगा स्वतंत्र त्रिज्या संपादित करें.
  20. यदि आप त्रिज्या भी चुनते हैं, सीएसएस अंतर में कुछ भी नहीं रहता है.
  21. एक बदले हुए अंतर के लिए नए सिरे की आवश्यकता होती है चयन, बल प्रयोग नहीं।
  22. उपयोगी कार्य को न छोड़ें चरणबद्ध चयन को ठीक करने के लिए.
  23. तैयार एवं शेष के नाम बतायें जारी रखने से पहले संपादन।
  24. के लिए त्रिज्या संपादित रखें अगली स्पष्ट प्रतिबद्धता।