दिलचस्प पोस्ट
जावा में PrintWriter बनाम फ़्रीवेयर सीमित पहुंच वाले मित्र वर्ग रेल: link_to में GET क्वेरी स्ट्रिंग मापदंडों को संरक्षित करना एक संपूर्ण एस 3 बाल्टी डाउनलोड कर रहा है? Bufferedreader और filereader के बीच विशिष्ट अंतर थ्रेड.स्टॉप और दोस्त हैं जो जावा में कभी सुरक्षित हैं? क्या है – के लिए अच्छा है? खाली फ़ील्ड गिरने के बिना टैब-सीमांकित फ़ाइल पर बैश में पढ़ें appdelegate में प्रारंभिक दृश्य नियंत्रक सेट – तेज LINQ और C # का उपयोग कर Microsoft Access MDB डेटाबेस की क्वेरी करें क्या मैं CreateFile का उपयोग कर सकता हूँ, लेकिन संभाल को एक std :: ofstream में लागू कर सकता हूं? सूची, आईआईएलआईटी, आईआईएनमेरेबल, आईकेटेबल, आईकॉल्यूशन, जो सबसे लचीला रिटर्न प्रकार है? जावास्क्रिप्ट टू फिक्स्ड न राउंडिंग एक मजाक मचाना: नकली () या पैच ()? क्या किसी सरणी के आकार को सामान्य के प्रकार पैरामीटर का उपयोग करना संभव है?

आंशिक रूप से git के साथ एक प्रतिबद्धता चेरी उठा

मैं 2 अलग-अलग शाखाओं पर काम कर रहा हूं: रिलीज और विकास
मैंने देखा कि मुझे अभी भी कुछ बदलावों को एकीकृत करने की आवश्यकता है जो रिहाई शाखा को विकास शाखा में वापस करने के लिए प्रतिबद्ध थे।
समस्या यह है कि मुझे सभी चीजों की ज़रूरत नहीं है, कुछ फ़ाइलों में केवल कुछ कर्कश हैं, इसलिए एक सरल

git cherry-pick bc66559 

चाल नहीं करता
जब मैं ऐसा करता हूं

 git show bc66559 

मैं अंतर देख सकता हूं लेकिन वास्तव में मेरे वर्तमान काम के पेड़ को आंशिक रूप से लागू करने का एक अच्छा तरीका नहीं जानता।
कोई सुझाव बहुत स्वागत होगा!

Solutions Collecting From Web of "आंशिक रूप से git के साथ एक प्रतिबद्धता चेरी उठा"

आप जिस मुख्य चीज को यहां चाहते हैं वह है git add -p ( -p ) – के लिए एक पर्याय है। यह सामग्री की जांच करने के लिए एक इंटरैक्टिव तरीका प्रदान करता है, आपको यह तय करने का मौका देता है कि क्या प्रत्येक हंक में जाना चाहिए, और यदि आपको आवश्यक हो तो पैच को मैन्युअल रूप से संपादित करने दें।

चेरी-पिक के साथ संयोजन में इसका इस्तेमाल करने के लिए:

 git cherry-pick -n <commit> # get your patch, but don't commit (-n = --no-commit) git reset # unstage the changes from the cherry-picked commit git add -p # make all your choices (add the changes you do want) git commit # make the commit! 

(मुझे याद दिलाने के लिए टिम हेनगीन के लिए धन्यवाद कि जीआईटी-चेरी-पिक के पास कोई विकल्प नहीं है, और फेलिक्स रबे को धन्यवाद देने के लिए धन्यवाद कि आपको रीसेट करने की आवश्यकता है! अगर आप केवल कुछ चीज़ों को कमिट से बाहर करना चाहते हैं , आप git reset <path>... का उपयोग केवल उन्हीं फाइलों को छोड़ सकते हैं।)

यदि आवश्यक हो तो आप निश्चित रूप से add -p को add -p विशिष्ट मार्ग प्रदान कर सकते हैं। यदि आप एक पैच के साथ शुरू कर रहे हैं तो आप cherry-pick को apply कर apply


यदि आप वास्तव में git cherry-pick -p <commit> (उस विकल्प में मौजूद नहीं) चाहते हैं, तो आप इसका उपयोग कर सकते हैं

 git checkout -p <commit> 

यह आपके द्वारा निर्दिष्ट किए गए प्रतिबद्धता के विरुद्ध मौजूदा प्रतिबद्धता को अलग करेगा, और आप उस अंतर से कुत्ते को व्यक्तिगत रूप से लागू करने की अनुमति देगा यह विकल्प अधिक उपयोगी हो सकता है यदि आप में जो चाल चल रहे हैं, तो आप जिन चीजों में दिलचस्पी नहीं रखते हैं, उनके हिस्से में मर्ज ट्रिब्यूट होते हैं। (ध्यान दें, हालांकि, यह checkout cherry-pick से अलग है: checkout को <commit> लागू करने का प्रयास करता है। चीजें पूरी तरह से, cherry-pick अपने माता-पिता से विशिष्ट प्रतिबद्ध की भिन्नता को लागू करती है। इसका मतलब यह है कि checkout केवल उस प्रतिबद्धता से अधिक लागू कर सकती है, जो आप जितना चाहें उतना अधिक हो सकता है।)

मुझे पता है कि मैं एक पुराने प्रश्न का जवाब दे रहा हूं, लेकिन ऐसा लगता है कि इस पर अन्तरक्रियात्मक रूप से जाँच करने के लिए एक नया तरीका है:

 git checkout -p bc66559 

क्या मैं दूसरे जीआईटी के कबीले से बातचीत कर सकता हूँ?

आप चाहते हैं कि परिवर्तनों को आप चाहते हैं कि शाखा के शीर्ष पर हैं, गिट चेकआउट का उपयोग करें

एक एकल फाइल के लिए:

 git checkout branch_that_has_the_changes_you_want path/to/file.rb 

कई फाइलें सिर्फ डेज़ी श्रृंखला के लिए:

 git checkout branch_that_has_the_changes_you_want path/to/file.rb path/to/other_file.rb 

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

 git checkout -p bc66559 -- path/to/file.java 

इससे आप फ़ाइल के अपने वर्तमान संस्करण पर लागू होने वाले परिवर्तनों को अंतःक्रियापूर्वक चुन सकेंगे।

अगर "आंशिक रूप से चेरी का चयन" का अर्थ है "फाइलों के भीतर, कुछ परिवर्तनों को चुनना है लेकिन दूसरों को छोड़ना", यह git stash में लाकर किया जा सकता है:

  1. पूर्ण चेरी का चयन करो
  2. git reset HEAD^ पूरे चेरी-चुने हुए परिवर्तन को अस्थिर कार्यरत परिवर्तनों में बदलने के लिए।
  3. अब git stash save --patch : git stash save --patch अवांछित सामग्री का चयन करें
  4. गीट आपके कार्यशील प्रतिलिपि से स्टैश किए गए बदलावों को वापस चलाता है
  5. git commit
  6. अवांछित परिवर्तनों के छिपाने की जगह फेंको: git stash drop

युक्ति: यदि आप अवांछित बदलावों का एक नाम देते हैं तो: git stash save --patch junk तो अगर आप (7) करने के लिए भूल जाते हैं, तो बाद में आप यह पता लगा सकते हैं कि यह क्या है।