यह कई हिट स्क्वैश का एक अच्छा विवरण देता है:
http://git-scm.com/book/en/Git-Branching-Rebasing
लेकिन यह उन कामों के लिए काम नहीं करता है जिन्हें पहले ही धकेल दिया गया है। मैं अपने स्थानीय और दूरस्थ रेपो दोनों में सबसे हाल के कुछ स्क्वैश कैसे करूं?
संपादित करें: जब मैं करता हूं git rebase -i origin/master~4 master
, तो पहले को एक के रूप में रखें pick
, दूसरे को तीन के रूप में सेट करें squash
, और फिर बाहर निकलें (emxs में cx cc के माध्यम से), मुझे मिलता है:
$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)
Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"
$ git rebase -i origin/master~4 master
Interactive rebase already started
जहां 2f40 pick
प्रतिबद्ध है। और अब 4 में से कोई भी कमिट नहीं दिखाई देता है git log
। मुझे उम्मीद थी कि मेरे संपादक को फिर से शुरू किया जाएगा ताकि मैं एक प्रतिबद्ध संदेश दर्ज कर सकूं। मैं क्या गलत कर रहा हूं?
git push --force origin master