सामग्री पर जाएं
GitTree
इतिहास और पुनर्प्राप्ति

स्क्वैश प्रतिबद्ध है

स्क्वैशिंग कई कमिटों को एक में जोड़ती है, जैसे कि git rebase -i में fixup या squash। GitTree में प्रत्येक स्क्वैश पहले Squash डायलॉग खोलता है: यह फोल्ड किए गए कमिट, परिणाम, संदेश और किसे क्रेडिट मिलता है दिखाता है, और जब तक आप पुष्टि नहीं करते तब तक कुछ भी नहीं बदलता है। आपके अप्रतिबद्ध कार्य को कभी भी नहीं छुआ जाता है, और Undo प्रतिबद्धताओं को वापस रख देता है।

निःशुल्कअद्यतन किया गया

GitTree में निःशुल्क काम करता है: आपके साइन इन करने के बाद प्रत्येक स्थानीय Git सुविधा।

इस पेज पर
  1. शुरू करने से पहले
  2. इसे कहां खोजें
  3. कदम
  4. अपेक्षित परिणाम
  5. स्क्वैश करने के तरीके
  6. प्रतिबद्ध आप पहले ही धक्का दे चुके हैं
  7. फिक्सअप बाद के लिए प्रतिबद्ध है
  8. स्क्वैश मर्ज अपने लेखकों को बनाए रखते हैं
  9. सेटिंग्स
  10. अगर कुछ गलत होता है
  11. प्रश्न
  12. संबंधित

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

  • कमिट उस शाखा पर हैं जिसे आपने चेक आउट किया है, एक अखंड पंक्ति में। एक चयन मर्ज कमिट नहीं रख सकता; Squash Branch… कर सकते हैं।
  • स्क्वैश किए गए कमिट और उनके ऊपर के प्रत्येक कमिट को नई आईडी मिलती हैं। यदि आपने उन्हें पहले ही धक्का दे दिया है, तो आपको बाद में एक ज़ोरदार धक्का की आवश्यकता होगी; किसी अन्य दूरस्थ शाखा का इतिहास यहां नहीं बताया जा सकता।

इसे कहां खोजें

  • ग्राफ़ में दो या अधिक कमिट चुनें (किसी श्रेणी के लिए शिफ़्ट-क्लिक करें), राइट-क्लिक करें: Squash Commits…।
  • एक कमिट पर राइट-क्लिक करें: Edit History › Squash into Parent… या Fixup into Parent…।
  • ग्राफ़ या बाएँ पैनल में चेक-आउट शाखा पर राइट-क्लिक करें: Squash Branch…।
  • Alt (⌥ को Mac पर) दबाए रखें और किसी कमिट को उसके ठीक ऊपर या नीचे कमिट पर खींचें।
  • किसी कमिट को राइट-क्लिक करें: Edit History › Create Fixup Commit… जो इसके लिए फिक्सअप के रूप में किया गया है उसे कमिट करने के लिए।
  • इनमें से प्रत्येक कमांड पैलेट में और फ़ीचर गाइड के Squash कार्ड पर भी है।
कार्रवाईmacOSWindows और Linux
चयन पर Squash Commits…⌥SAlt+S
चयनित कमिट के लिए Squash into Parent…⌥QAlt+Q
चेक-आउट शाखा के लिए Squash Branch…⌥⇧BAlt+Shift+B
Undo स्क्वैश⌘ZCtrl+Z

कदम

  1. स्क्वैश संवाद खोलें

    उपरोक्त किसी भी प्रविष्टि का उपयोग करें. संवाद का नाम उस चीज़ के नाम पर रखा गया है जिसे आप स्क्वैश करते हैं, उदाहरण के लिए Squash 3 Commits, Squash a1b2c3d into Its Parent या Squash Branch feature/login। इसकी सारांश पंक्ति इस प्रकार है "3 कमिट 1 · 12 फ़ाइलें बन जाती हैं · +240 −31 · एडा का लेखकत्व बरकरार रहता है"।

  2. फोल्ड होने वाले कमिट्स की जाँच करें

    Commits that fold lists them oldest first under the Result: one commit written by the author of the oldest one. For Squash Branch…, Base: shows where the branch left its base; Change… lets you type another branch, tag or commit, and the plan is made again.

  3. संदेश चुनें

    Start the message from के अंतर्गत, Combine Messages, Oldest Message, Newest Message, List of Commits या Write My Own चुनें, फिर टेक्स्ट को अपनी इच्छानुसार संपादित करें। एक सारांश पंक्ति आवश्यक है.

  4. अन्य लेखकों को श्रेय दें

    जब अन्य लोगों ने कुछ प्रतिबद्धताएँ लिखीं, तो Credit the other authors (Co-authored-by) उनमें से प्रत्येक के लिए एक Co-authored-by पंक्ति जोड़ता है। इसके द्वारा जोड़ी गई पंक्तियाँ इसके अंतर्गत सूचीबद्ध हैं; उन्हें बाहर छोड़ने के लिए इसे अनचेक करें।

  5. पढ़ें और क्या बदलाव हुआ, फिर स्क्वैश करें

    What else changes कहता है कि ऊपर दिए गए कितने कमिटों को नई आईडी मिलती हैं (उनके परिवर्तन वही रहते हैं) और कौन सी अन्य शाखाएँ या टैग पुराने कमिट्स को बनाए रखते हैं। पुष्टिकरण बटन दबाएँ, जैसे कि Squash 3 Commits या Squash into Parent।

अपेक्षित परिणाम

उदाहरण के लिए, GitTree कहता है, 3 commits squashed into a1b2c3d. एक Undo बटन के साथ, और ग्राफ़ एक कमिट दिखाता है जहां कई थे।

आपके चरणबद्ध और अस्थिर परिवर्तन और अनट्रैक की गई फ़ाइलें बिल्कुल वैसी ही हैं जैसी वे थीं: स्क्वैश कभी भी कार्यशील पेड़ को नहीं छूता है।

स्क्वैश करने के तरीके

प्रत्येक स्क्वैश क्या मोड़ता है
आदेशक्या मोड़ता है
Squash Commits…आपके द्वारा चयनित कमिट, चेक-आउट शाखा पर एक-दूसरे के बगल में दो या अधिक हैं।
Squash into Parent…इसके नीचे कमिट में एक कमिट करें।
Fixup into Parent…वही, केवल माता-पिता के संदेश को रखते हुए (जैसे कि git rebase -i में fixup)।
Squash Branch…अपना आधार छोड़ने के बाद से शाखा की प्रत्येक प्रतिबद्धता, उस आधार पर एक प्रतिबद्धता में विलीन हो जाती है।
Alt-खींचेंघसीटा गया कमिट और जिस पड़ोसी पर आप इसे छोड़ते हैं। संकेत Drop to squash … दिखाता है कि आप कहाँ गिर सकते हैं; Esc रद्द करता है.

प्रतिबद्ध आप पहले ही धक्का दे चुके हैं

यदि शाखा के अपस्ट्रीम में कमिट हैं, तो संवाद ऐसा कहता है और आपको इसे ख़त्म करने से पहले I will force push … after squashing पर टिक करने के लिए कहता है। बाद में संदेश Force Push… प्रदान करता है, जो दूरस्थ शाखा को केवल तभी प्रतिस्थापित करता है जब यह अभी भी वहीं है जहां आपने इसे आखिरी बार देखा था (बलपूर्वक धक्का)।

फिक्सअप बाद के लिए प्रतिबद्ध है

बिना कुछ भी दोबारा लिखे किसी पुराने कमिट को ठीक करने के लिए, बदलाव को चरणबद्ध करें और उस कमिट पर Create Fixup Commit… चुनें। चुनें Fixup (अपना संदेश रखता है), Squash (नोट जोड़ता है) या Amend (इसके संदेश को New message से बदल देता है)। GitTree एक fixup!, squash! या amend! प्रतिबद्ध करता है; एक इंटरैक्टिव रीबेस Arrange fixup!, squash! and amend! commits के साथ इसे मोड़ देता है।

स्क्वैश मर्ज अपने लेखकों को बनाए रखते हैं

जब आप एक शाखा को Squash into staged changes (no commit) के साथ मर्ज करते हैं, तो एक खाली कमिट बॉक्स को एक संदेश मिलता है जिसमें उसके द्वारा लाए गए कमिट को सूचीबद्ध किया जाता है, जिसमें उनके लेखकों के लिए Co-authored-by लाइनें होती हैं। आपके द्वारा पहले ही लिखा गया एक संदेश रखा जाता है.

सेटिंग्स

प्राथमिकताएँ › General में, Squash: starting message उस संदेश को चुनता है जिसके साथ संवाद शुरू होता है, और Squash: credit co-authors सेट करता है कि क्रेडिट शुरू होता है या नहीं। प्रत्येक स्क्वैश अभी भी दोनों को बदल सकता है।

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

"कमिट एक दूसरे के बगल में नहीं हैं। एक अखंड रन का चयन करें।"

उन कमिटों का चयन करें जो चेक-आउट शाखा पर एक दूसरे का अनुसरण करते हैं, या पूरी शाखा के लिए Squash Branch… का उपयोग करते हैं।

"एक मर्ज कमिट फोल्ड हो जाएगी। स्क्वैश ब्रांच... फोल्ड मर्ज हो जाएगी; एक चयन नहीं हो सकता।"

कमिट दर कमिट चुनने के लिए Squash Branch…, या इंटरैक्टिव रिबेस का उपयोग करें।

"... इसमें ये प्रतिबद्धताएँ शामिल हैं: वे साझा इतिहास हैं और इन्हें यहाँ ख़त्म नहीं किया जा सकता है।"

एक अन्य दूरस्थ शाखा में वे हैं। उन्हें वैसे ही छोड़ दें जैसे वे हैं, या कमांड लाइन से साझा इतिहास को फिर से लिखने से पहले अपनी टीम से सहमत हों।

स्क्वैश एक त्रुटि और एक Review Again बटन के साथ रुक जाता है

संवाद खुला रहने के दौरान कुछ ने शाखा बदल दी, इसलिए कुछ भी नष्ट नहीं हुआ। नई योजना देखने के लिए Review Again दबाएँ, फिर दोबारा स्क्वैश करें।

प्रश्न

मैं स्क्वैश को कैसे पूर्ववत करूँ?

संदेश या टूलबार में Undo दबाएँ। शाखा को स्थानांतरित करने से पहले GitTree ने पुराने कमिट्स को refs/ogt/trash के अंतर्गत रखा, ताकि वे बिल्कुल वैसे ही वापस आ जाएँ जैसे वे थे।

स्क्वैश्ड कमिट पर किसका नाम है?

सबसे पुरानी प्रतिबद्धता का लेखक, जो इसकी तारीख के साथ तह करता है; आप प्रतिबद्ध हैं. बाकी सभी को श्रेय देने के लिए Credit the other authors (Co-authored-by) चालू करें।

क्या स्क्वैशिंग मेरे प्रतिबद्ध हुक चलाता है या मेरी कामकाजी फ़ाइलों को छूता है?

नहीं, GitTree सीधे नए कमिट लिखता है, जिस तरह से git rebase आंतरिक रूप से करता है, और आपके कार्यशील ट्री में इंडेक्स या फ़ाइलों को कभी नहीं बदलता है। जब आपका Git कॉन्फ़िगरेशन हस्ताक्षरित प्रतिबद्धताओं के लिए पूछता है तो यह उन पर हस्ताक्षर करता है।