2010-03-08 8 views
5

यदि पहले की प्रतिबद्धता के बाद से बहुत कुछ किया गया है और कई बदलाव हुए हैं, तो क्या पहले की प्रतिबद्धता की सटीक स्थिति में सबकुछ वापस करने का एक आसान तरीका है?गिट: सब कुछ वास्तव में पूर्व प्रतिबद्धता की स्थिति में कैसे वापस लाया जाए?

यदि हां, तो क्या मुझे वर्तमान स्थिति में आसानी से स्विच करना संभव है यदि मुझे भी ऐसा करना चाहिए?

मुझे एहसास हुआ है कि यह पुरानी प्रतिबद्धता वास्तव में सही है, और केवल संदर्भ के लिए सभी परिवर्तनों को बनाए रखना चाहते हैं, लेकिन भविष्य का काम इस पुरानी प्रतिबद्धता पर आधारित होगा।

उत्तर

6

ऐसा लगता है कि आप एक शाखा पर अपने वर्तमान काम रखना चाहते हैं:

git branch saved_work 
git reset --hard previouscommit 

अब, अपने saved_work शाखा शामिल previouscommit, और masterpreviouscommit पर रीवाउंड है।

1

आपके वर्तमान परिवर्तन प्रतिबद्ध:

git commit 

तो चेकआउट वर्ष के लिए प्रतिबद्ध:

git checkout yourcommit 

एक -f विकल्प किसी भी स्थानीय परिवर्तन को नष्ट कर देगा जोड़ा जा रहा है।

2

जब से तुम पहले राज्य पर लौटने के लिए करना चाहते हैं:

git stash 
git checkout -b new_branch <tree-ish> 

ऊपर अपने अप्रतिबद्ध परिवर्तनों को सहेजने और पर विशिष्ट प्रतिबद्ध आप एक नई शाखा बनाने के लिए अनुमति देगा। जितना आप चाहते हैं और बाद में जब आप पहले राज्य के लिए बदलना चाहते हैं:

git stash 
git checkout earlier_branch 
+0

मैं इस चेक आउट शाखा को मास्टर बनने के बारे में कैसे जाउंगा? मुझे एहसास हुआ है कि यह पुरानी प्रतिबद्धता वास्तव में सही है, और केवल संदर्भ के लिए सभी परिवर्तनों को बनाए रखना चाहता है, लेकिन भविष्य का काम इस पुरानी प्रतिबद्धता पर आधारित होगा। –

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