यदि आपने अभी तक कोई कमिट नहीं किया है, तो केवल (1: शाखा) और (3: चेकआउट) ही पर्याप्त होगा।
या, एक आदेश में:git checkout -b newBranch
जैसा कि git reset
मैन पेज में बताया गया है :
$ git branch topic/wip # (1)
$ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip # (3)
- आपने कुछ कमिट किए हैं, लेकिन एहसास है कि वे "
master
" शाखा में होने के लिए समय से पहले थे । आप उन्हें विषय शाखा में चमकाना जारी रखना चाहते हैं, इसलिए topic/wip
करंट की शाखा बंद करें HEAD
।
master
उन तीन आवागमन से छुटकारा पाने के लिए शाखा को फिर से शुरू करें।
- "
topic/wip
" शाखा में स्विच करें और काम करते रहें।
नोट: एक git reset --hard
कमांड के "विनाशकारी" प्रभाव के कारण (यह इंडेक्स और वर्किंग ट्री को रीसेट करता है। वर्किंग ट्री में ट्रैक की गई फाइलों में कोई भी बदलाव जो छूट गए <commit>
हैं), मैं इसके साथ जाना चाहूंगा:
$ git reset --soft HEAD~3 # (2)
यह सुनिश्चित करेगा कि मैं कोई भी निजी फ़ाइल नहीं खो रहा हूं (सूचकांक में नहीं जोड़ा गया है)। विकल्प इंडेक्स फ़ाइल है और न ही सभी पर काम कर पेड़ को छूने नहीं (लेकिन सिर रीसेट करता है , जैसे सभी साधनों करते हैं)।
--soft
<commit>
Git 2.23+ के साथ , नया कमांडgit switch
एक लाइन में शाखा बनाएगा (एक ही तरह का reset --hard
, इसलिए इसके प्रभाव से सावधान रहें):
git switch -f -c topic/wip HEAD~3