2010-02-01 11 views
9

के साथ इंटरकैक्टिव रूप से हंक को हटाकर मुझे गिट एड - पैच (और हाल ही में, गिट ऐड -i) का उपयोग करना पसंद है, साथ ही यह सत्यापित करने के लिए कि मैं क्या कर रहा हूं जाने के लिए अच्छा हैगिट एड-पैच

एक समय में मैं एक हंक में आउंगा जो एक त्रुटि लॉगिंग स्टेटमेंट हो सकता है, एक अतिरिक्त नई लाइन (आमतौर पर उपरोक्त लॉगिंग स्टेटमेंट को मिटाने से) - कुछ ऐसा जो मैं वास्तव में पूरी तरह से हटा दूंगा।

मैं मंच नहीं लेना चाहता हूं और मैं केवल प्रश्न में हंक को हटाना चाहता हूं, जबकि यह मेरे सामने है (मेरे संपादक पर वापस कूदने और फिर से प्रयास करने के बजाए)। मैं अपनी कामकाजी फाइल के खिलाफ भी बदलाव लागू करना चाहता हूं।

क्या ऐसा करने का कोई तरीका है?


मैं संपादित हंक कार्यक्षमता का उपयोग कर रहा है क्या माना जाता है।

यह नीचे दिए गए सुझाव hash के संयोजन के साथ मुझे अब थोड़ा सा बेहतर वर्कफ़्लो प्राप्त करता है।

मैं मानता हूं कि यह git add की चिंताओं को अलग करने का उल्लंघन है। ओटीओएच यह इतना सुविधाजनक होगा; पी मैं अपने बॉस की तरह लग रहा हूं;)

+1

वर्तमान में, जवाब है "नहीं"। हालांकि, ऐड-आई और गणना करने वाले शिकारी का उपयोग करने में सक्षम होने के लिए यह अच्छी कार्यक्षमता होगी। उदाहरण के लिए, प्रत्येक हंक के लिए हां/नहीं के बजाय, आप पैच का अनुक्रम उत्पन्न कर सकते हैं, और उसके बाद कई लॉग संदेशों के लिए प्रतिबद्ध संकेत मिलेगा। या यदि आपके पास 'स्टेज/नो-स्टेज/स्टैश' जैसे प्रत्येक विकल्प हैं, तो 'स्टेज/डॉट स्टेज' या 'स्टैश/डॉट स्टैश' (स्टेश -पी के माध्यम से) –

+0

हाँ, मुझे आमतौर पर लगता है 'गिट एड' का उद्देश्य कार्य वृक्ष फ़ाइलों को संपादित करने का एक तरीका नहीं है, हालांकि आप सही हैं, लेकिन आप वहां रहते हुए इसका ख्याल रखने में सक्षम होना अच्छा होगा। – Cascabel

+1

जो मैंने हमेशा सोचा था वह 'add -i' के दौरान विकल्प के रूप में 1-9 उपलब्ध होने के लिए अच्छा होगा। '1' का चयन करने से पहली प्रतिबद्धता में हंक जोड़ दिया जाएगा, और इसी तरह। यह वर्कफ़्लो का समर्थन करेगा जिससे आप उन सभी टिप्पणी परिवर्तनों को '1' में डाल सकें, कि '2', आदि में fizzbuzz सुविधा और शिकारी जिन्हें आप' 9' में नहीं चाहते हैं। सब एक पास में। फिर बस अंतिम प्रतिबद्धता को छोड़ दें। आपको वहां काम करने के लिए कैसे काम करना होगा, लेकिन यह निश्चित रूप से उपयोगी होगा। –

उत्तर

5

अपने सभी वैध शिकारी बनाने के बाद, हार्ड हार्ड रीसेट का उपयोग करने से बेहतर, आप वर्तमान शाखा में दर्ज की गई चीज़ों को रीसेट करने के लिए फ़ाइल को चेकआउट कर सकते हैं। इस तरह यह किसी भी अन्य फाइलों को प्रभावित नहीं करता है।

0

आप जो चाहें इंडेक्स में जोड़ सकते हैं, प्रतिबद्ध कर सकते हैं, फिर हार्ड हेड रीसेट कर सकते हैं, फिर इंडेक्स में क्या नहीं था।

+0

यह एक सही समाधान नहीं है। ओपी ने असंगत कामों का उल्लेख किया है, और इसलिए संभवतः काम के पेड़ में अन्य वांछनीय संशोधन हैं जो एक रीसेट/स्टैश मार डालेगा। – Cascabel

+0

वह वही है जो वह प्राप्त करने के लिए कर सकता है, वह नहीं जो वह करने में सक्षम होना चाहता है, हां। – hash

1

एक फीचर अनुरोध के जवाब में गिट योजक जूनियो on the Git mailinglist से गिट एड ऐसा क्यों नहीं करता है इसकी पूरी तरह से व्याख्या है। उसकी वैकल्पिक प्रक्रिया की

लघु संस्करण:

# start from N-commit worth of change, debug and WIP 
git stash save -p debug ;# stash away only the debugging aid 
# now we have only N-commit worth of change and WIP 
git stash save -p wip ;# stash away WIP 

git add -p ;# prepare the index for the next commit 
git stash save -k ;# save away the changes for later commits 

git commit