git-reset hash
दिए गए हैश के लिए शाखा संदर्भ सेट करता है, और वैकल्पिक रूप से इसेके साथ चेक आउट करता है।
git-checkout hash
दिए गए हैश में काम करने वाले पेड़ को सेट करता है; और जब तक हैश शाखा का नाम नहीं है, तो आप एक अलग सिर के साथ समाप्त हो जाएंगे।
अंततः, 3 चीजों के साथ Git सौदों:
working tree (your code)
-------------------------------------------------------------------------
index/staging-area
-------------------------------------------------------------------------
repository (bunch of commits, trees, branch names, etc)
git-checkout
डिफ़ॉल्ट रूप से केवल सूचकांक और काम कर पेड़ अद्यतन करता है, और वैकल्पिक रूप भंडार में कुछ (-b
विकल्प के साथ) को अपडेट कर सकते
git-reset
डिफ़ॉल्ट रूप से केवल भंडार और सूचकांक अद्यतन करता है, और वैकल्पिक रूप से कार्यरत पेड़ (--hard
विकल्प के साथ)
आप भंडार के बारे में सोच सकते हैं इस तरह:
HEAD -> master
refs:
master -> sha_of_commit_X
dev -> sha_of_commit_Y
objects: (addressed by sha1)
sha_of_commit_X, sha_of_commit_Y, sha_of_commit_Z, sha_of_commit_A ....
git-reset
क्या शाखा संदर्भ को इंगित manipulates।
अपने इतिहास इस तरह दिखता है मान लीजिए:
T--S--R--Q [master][dev]
/
A--B--C--D--E--F--G [topic1]
\
Z--Y--X--W [topic2][topic3]
ध्यान रखें कि शाखाओं बस ऐसे नाम हैं जो अग्रिम स्वचालित रूप से आप जब प्रतिबद्ध हैं।
तो आप निम्नलिखित शाखाएं हैं:
master -> Q
dev -> Q
topic1 -> G
topic2 -> W
topic3 -> W
और अपने वर्तमान शाखा topic2 सिर अंक topic2
है, कि है,।
HEAD -> topic2
फिर, git reset X
एक्स को इंगित करने के नाम topic2
रीसेट कर देगा; यदि आप एक शाखा topic2 पर पी प्रतिबद्ध बनाने के लिए, चीजों को इस तरह दिखेगा, जिसका अर्थ है:
T--S--R--Q [master][dev]
/
A--B--C--D--E--F--G [topic1]
\
Z--Y--X--W [topic3]
\
P [topic2]
मैं अपने पिछले प्रश्नों में से एक करने के लिए अपने जवाब के लिए एक अद्यतन में इस कवर - विशेष रूप से जहां शीर्ष के निकट ascii कला को देखो, यह कहता है "Digression: ..." (जितना मैं इसे फिर से जवाब देने के लिए और अधिक प्रतिनिधि प्यार करता हूँ) – Cascabel
मुझे लगता है कि आप यहां अपना उत्तर पोस्ट कर सकते हैं और इससे प्रतिनिधि प्राप्त कर सकते हैं। अगर कोई इस विशेष ज्ञान की खोज करता है, तो उसे दूसरी पोस्ट नहीं मिलेगी। यह एक बहुत ही विशिष्ट विषय का लक्ष्य रखता है, और यह इसके अलग पृष्ठ के लायक है। बीटीडब्ल्यू, ऐसा लगता है कि आप मेरे गिट सलाहकार हैं :-) हरिगाटो, सेंन्सी! –
लेकिन क्या मुझे यह मिल रहा है, अंतर यह है कि रीसेट शाखा को स्थानांतरित करता है और चेकआउट नहीं करता है। –