IDEA में एकल पुश करने के लिए स्थानीय कमिट का समूह कैसे संयोजित करें?


85

आईडीईए में मैं कुछ कमिट्स को आगे बढ़ाने की कोशिश कर रहा हूं।

मेरी एक आवश्यकता है कि दूरस्थ सर्वर पर यह एकल क्रिया की तरह दिखता है।

मैं निम्नलिखित विंडो को पुश करने और देखने के लिए क्लिक करता हूं यहां छवि विवरण दर्ज करें

मुझे यहाँ स्क्वैश चेकबॉक्स देखने की उम्मीद थी लेकिन इसे नहीं देखा।

क्रिप्या मेरि सहायता करे।


2
IDEA को सलाह नहीं दे सकता है, लेकिन स्क्वाशिंग एक इंटरैक्टिव रिबेस या मर्ज का हिस्सा है, न कि कमिट। वहां देखने की कोशिश करो।
मुस्किक

जवाबों:


115

आप इसे रिबास का उपयोग करके कर सकते हैं। पर जाएं VCS / Git / रिबेस । इसके बाद इंटरएक्टिव ऑप्शन को चुनें। यह आपको कमिट की एक सूची दिखाएगा, जहां आप उन लोगों को चुन सकते हैं जिन्हें आप स्क्वैश करना चाहते हैं।

आपके द्वारा स्टार्ट रिबास करने के बाद, यह आपको स्क्वैश किए गए कमिट के लिए एक संदेश का संकेत देगा। उसके बाद किया जाता है आप पुश संवाद का उपयोग करके अपने स्क्वास्ड कमिट को पुश कर सकते हैं।

स्क्वैश संवाद

IntelliJ में छूट के बारे में अधिक जानकारी यहाँ है


9
इस Git Tools को पढ़ने में भी मदद मिल सकती है - "Rebase branch" डायलॉग के "Onto फ़ील्ड" में दर्ज करने के लिए इतिहास के लेख को फिर से लिखना : e..g HEAD~3का उपयोग अंतिम 3 कमिट्स को चुनने के लिए किया जा सकता है।
TmTron

जब आप एक साथ कमिट्स का एक समूह स्क्वैश करते हैं, तो क्या उन कमिट्स में से प्रत्येक का व्यक्तिगत विवरण खो जाता है? क्या यह सिर्फ एक बड़ी प्रतिबद्धता की तरह खत्म होता है?
यकायक

@ycomp हाँ, इंटरएक्टिव रिबेस इतिहास को फिर से लिखता है, इसलिए व्यक्तिगत स्क्वॉड कमिट खो जाते हैं और उनकी जगह एक नया एकल बनाया जाता है।
बोहुस्लाव बरघाट

धन्यवाद, क्या आप स्क्वैश को पूर्ववत कर सकते हैं?
ycomp

@ycomp मैंने वास्तव में कभी नहीं किया है, लेकिन यह संभव होना चाहिए। कृपया निम्नलिखित एसओ पदों का संदर्भ लें: stackoverflow.com/q/10260151/1291150 , stackoverflow.com/q/134882/1291150
बोहुस्लाव बरघाट

33

एक नया तरीका है:

संस्करण नियंत्रण -> लॉग -> कमिट पर राइट क्लिक करें -> Interactively rebase from hereऔर फिर आप बाकी कमिट्स को चुनना / स्क्वैश करना चुन सकते हैं।


1
इस दृष्टिकोण के साथ समस्या यह है कि कई हिट के लिए "स्क्वैश" चुनने का कोई तरीका नहीं है और यह एक के बाद एक करने के लिए थकाऊ हो जाता है।
दिमित्री सर्डियुक

4
@DmitrySerdiuk आप स्क्वैश का चयन करने के लिए क्लिक शिफ्ट कर सकते हैं और फिर राइट क्लिक -> स्क्वैश का चयन करें।
आरजव

1
@ अरजव ओह माय गॉड यह बिल्कुल मुझे लगा कि यह गायब है! संवाद में राइट-क्लिक मेनू के बारे में कोई संकेत नहीं।
o_nix

21

मेरे लिए इंटेलीज के साथ सबसे सरल तरीका है:

  • Logटैब पर जाएं और उस कमिट को चुने जहां से आप स्क्वैश करना चाहते हैं
  • राइट क्लिक करें और चुनें Reset Branch to this commit
  • mixinअपने परिवर्तनों को कमिट से रखने के लिए विकल्प चुनें
  • अपने परिवर्तन करें और Amend commitविकल्प की जांच करना न भूलें

1
यह वास्तव में सबसे सरल तरीका है और मुझे यह सबसे कम तनावपूर्ण और त्रुटि प्रवण लगता है।
davrog10

2
मेरा सुझाव है कि चरण 3 पर बेहतर होगा कि Softविकल्प चुनने के बजाय Mixedसभी बदलावों के लिए पहले से ही प्रतिबद्ध हैं।
प्रोविसोटा कोटा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.