गिटक (* निक्स), या गीट्क्स (ओएस एक्स) या अन्य प्लेटफॉर्म पर समान का उपयोग करें, और देखें कि कौन सी प्रतिबद्धता आपकी शाखा की जड़ थी। तब चलाएँ:
gitx screencap http://img.skitch.com/20081213-mq7qpp5nhceksdhfx14rerjgyx.jpg
अब मैं जड़ हैश पता है कि मैं इस चला सकते हैं::
git rebase -i 38965ed29d89a4136e47b688ca10b522b6bc335f
git rebase -i <the SHA hash of the root commit>
उदाहरण के लिए, मैं एक भंडार है कि मैं gitx का उपयोग कर निरीक्षण किया है
और मेरा संपादक इसके साथ पॉप अप करता है और मैं जो कुछ भी कर सकता हूं उसे पुनर्व्यवस्थित/स्क्वैश/कर सकता हूं।
pick 50b2cff File 1 changes.
pick 345df08 File 2 changes.
pick 9894931 File 3 changes.
pick 9a62b92 File 4 changes.
pick 640b1f8 File 5 changes.
pick 1c437f7 File 6 changes.
pick b014597 File 7 changes.
pick b1f52bc File 8 changes.
pick 40ae0fc File 9 changes.
# Rebase 38965ed..40ae0fc onto 38965ed
#
# Commands:
# pick = use commit
# edit = use commit, but stop for amending
# squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
मैं वहाँ Git को समझाने के लिए स्वचालित रूप से पेड़ की जड़ यह पता लगाने के लिए कुछ जादू तरीका है यकीन है, लेकिन मैं नहीं जानता कि यह क्या है।
संपादित करें: यह जादू यह है:
git log master..other_feature | cat
कौन सा ताकि आप देख पहले तुरंत प्रतिबद्ध आप बिल्ली है कि शाखा पर सभी करता है, और पाइपिंग दिखाएगा पेजर को निष्क्रिय कर देगा।
संपादित करें: के संयोजन के ऊपर एक पूरी तरह से स्वचालित समाधान देता है:
git rebase -i `git log master..other_feature --pretty=format:"%h" | tail -n 1`~
कृपया अपने प्रश्न को थोड़ा बेहतर शीर्षक दें। शायद उल्लेख करें कि आप शाखा में सभी बदलावों के लिए एक इंटरैक्टिव रिबेस करना चाहते हैं। एक प्रश्न के रूप में अधिमानतः (हालांकि हमेशा संभव नहीं)। – Dustin
क्या आप एक संशोधित 'मास्टर' पर रीबेस करना चाहते हैं या सिर्फ 'टेस्ट-शाखा' पर किए गए कामों को संपादित करना चाहते हैं? – DylanYoung