2012-03-26 19 views
7

मान लीजिए मैं निम्नलिखित Git करता है:गिट के साथ अंतिम प्रतिबद्धता को अस्थायी रूप से कैसे निकालें?

  1. aaaaaa
  2. bbbbbb
  3. cccccc (नवीनतम)

मैं bbbbbb के लिए वापस जाने और वहां से विकास जारी रखना चाहते हैं। अनिवार्य रूप से, मैं अब ccccccको के लिए निकालना चाहता हूं और भविष्य में इसे पुनर्प्राप्त करने में सक्षम हूं (मुझे पता है कि मुझे अभी भी cccccc की आवश्यकता होगी)। क्या मुझे cccccc या रोलबैक bbbbbb पर वापस लेना चाहिए?

+0

यह एक निजी Git भंडार के लिए है: आप ccccc का उपयोग कर पर वापस आना चाहते जब आप दोनों में से किसी कर सकते हैं। – moey

उत्तर

7

बस कार्य करें:

git checkout -b dev_on_b bbbbbbb 

जो cccccc के साथ शाखा अकेला छोड़ दें और आप एक नई शाखा bbbbbb से शुरू कर देंगे।

git merge branch_with_cccccc   # bring cccccc into dev_on_b 

या

git checkout branch_with_ccccc 
1

सही समाधान इस बात पर निर्भर करता है कि यह एक सार्वजनिक गिट भंडार है या नहीं।

यदि आप इस आदेश का उपयोग करते हैं, git revert HEAD^ तो यह वापस (2) पर वापस आ जाएगा, जो सही बात हो सकती है।

लेकिन, आपको यह सुनिश्चित करने की आवश्यकता होगी कि जब आप (4) करते हैं तो आप वापस लौटते हैं (3) और फिर जब आप दोबारा करते हैं तो परिवर्तन में विलय करें।

आप इस को देखने के लिए के रूप में यह विभिन्न स्थितियों के आधार पर विभिन्न विकल्पों पर चर्चा करेंगे, कर सकते हैं: http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html

+0

पॉइंटर्स के लिए धन्यवाद। यह वास्तव में कुछ निजी योगदानकर्ताओं के साथ एक निजी रेपो के लिए है। – moey

8

बस कर

git branch for_later 
git reset --hard bbbbbb 
बेशक

, ऐसा नहीं करते हैं, तो cccccc है पहले ही धक्का दिया उस स्थिति में, वापसी का उपयोग करें।

+0

क्या आपका मतलब जिथब को धक्का दिया गया था? – moey

+0

@ Siku-Siku.Com - हां, किसी भी केंद्रीय रेपो को दूसरों को साझा किया गया – manojlds