2017-06-22 7 views
6

जब मैं कोड लिखता हूं तो मैं इसे छोटे तार्किक परिवर्तनों में तोड़ देता हूं जो समीक्षा करने में आसान और त्वरित होते हैं।गिटहब पुल अनुरोधों में प्रतिबद्ध आदेश को कैसे ठीक किया जाए, गिट रिबेस द्वारा टूटा हुआ?

ऐसा करने के लिए, मैं git rebase -i (इंटरैक्टिव) का उपयोग स्क्वैश, ड्रॉप और कम करने के क्रम को बदलने के लिए करता हूं।

मैंने देखा है कि यह कभी-कभी गिटहब पुल अनुरोध पर काम करने के एक अलग क्रम की ओर जाता है (हालांकि रिमोट शाखा पर ऑर्डर बरकरार रखा जाता है)।

उदाहरण के लिए,

  • प्रतिबद्ध 1
  • प्रतिबद्ध 2
  • प्रतिबद्ध 3

पीआर में दिखाई दे सकते हैं:

  • प्रतिबद्ध 3
  • सी ommit 1

मैं इंटरनेट खोज की है और केवल इस GitHub मदद पृष्ठ खोज करने में कामयाब प्रतिबद्ध: Why are my commits in the wrong order? उनका जवाब:

आप Git rebase या एक के माध्यम से अपने लिए प्रतिबद्ध इतिहास के पुनर्लेखन हैं बल धक्का, आप देख सकते हैं कि पुल अनुरोध खोलते समय आपका प्रतिबद्ध अनुक्रम क्रम से बाहर है।

गिटहब चर्चा के लिए एक जगह के रूप में पुल अनुरोधों पर जोर देता है। सभी पहलू इसमें से - टिप्पणियां, संदर्भ, और प्रतिबद्धता - कालक्रम क्रम में दर्शाए जाते हैं। अपने गिट प्रतिबद्धता इतिहास को पुनर्लेखन while performing rebases स्पेस-टाइम निरंतरता को बदलता है, जिसका अर्थ है जो कि गिटहब इंटरफ़ेस में आपको उम्मीद करने के तरीके के रूप में प्रदर्शित नहीं किया जा सकता है।

यदि आप हमेशा क्रम में देखना चाहते हैं, तो हम git rebase का उपयोग न करने की सलाह देते हैं। हालांकि, बाकी आश्वासन दिया कि क्रोनोलॉजिकल ऑर्डर के बाहर चीजें देखें जब कुछ भी तोड़ा नहीं जाता है!

क्या इस के आसपास काम करने का कोई तरीका है?

+0

मुझे लगता है कि आप जानकारी के काफी अच्छे स्रोत तक पहुंच गए हैं। मेरा मानना ​​है कि जिथब कर्मचारी जिथूब के बारे में बहुत कुछ जानता है और यह किसी और को ढूंढने के लिए अलग होगा। तो अगर [github मदद] (https://help.github.com/articles/why-are-my-commits-in-the-wrong-order/) आपको बताता है कि क्रम में देखने का एकमात्र तरीका यह नहीं है कि 'गिट रिबेस 'का उपयोग करें शायद ** कोई अन्य वर्कअराउंड ** है। –

+1

@ running.t कृपया मेरा उत्तर देखें। :) – Eliad

+1

"मेरे अनुभव से" गिटहब चर्चा के लिए एक जगह के रूप में पुल अनुरोधों पर बल देता है ", परिणाम पृष्ठ एक ही मुद्दे से पीड़ित है। सभी कामों को सृजन के समय द्वारा आदेश दिया जाता है। क्योंकि मर्ज किए गए प्रतिबद्धता को "मूल" (पूर्व-विलय) प्रतिबद्ध पेड़ के अंदर मिश्रित किया जाता है – eplaut

उत्तर

4

मैं इस पर काम करने के लिए प्रबंधित किया है:

  1. का पता पिछले प्रतिबद्ध है कि आदेश
  2. भागो git rebase -i <hash of that commit>
  3. सभी pickreword साथ
  4. भागो बदलें बनाए रखा git push -f

इससे पहले, मैंने केवल बदलने की कोशिश की पहला प्रतिबद्ध संदेश, जो निम्नलिखित सभी हैंश को भी बदलता है, लेकिन इससे इसे ठीक नहीं किया गया है।

मुझे इसे काम करने के लिए हर निम्नलिखित प्रतिबद्धता के लिए भी करना था।

संबंधित मुद्दे