गेटिंग में प्रतिबद्ध प्रक्रिया से पहले चरण एक कदम है। यही है, git में एक कमिट दो चरणों में किया जाता है: स्टेजिंग और वास्तविक कमिट।
जब तक एक परिवर्तन मंचन क्षेत्र में होता है, git आपको इसे अपनी इच्छानुसार संपादित करने देता है (मंचन की गई फ़ाइलों को चरणबद्ध फ़ाइलों के अन्य संस्करणों के साथ बदलें, मंचन से परिवर्तन हटा दें, आदि)।
टूटा हुआ रूपक समय:
एक परिदृश्य पर विचार करें जहां आप मूवर्स को अपने पुराने ऐपबॉक्स से अपने नए ऐपबॉक्स में अपना सामान प्राप्त करने के लिए कहते हैं। इससे पहले कि आप ऐसा करते हैं, आप अपने सामान के माध्यम से जाएंगे, तय करें कि आप अपने साथ क्या लेते हैं और क्या फेंकते हैं, इसे बैग में पैक करें और इसे मुख्य दालान में छोड़ दें। मूवर्स बस आते हैं, दालान से (पहले से पैक) बैग प्राप्त करते हैं और उन्हें परिवहन करते हैं। इस उदाहरण में, जब तक मूवर्स को आपका सामान नहीं मिल जाता, तब तक सब कुछ होता है: आप तय करते हैं कि वह कहां जाता है, इसे कैसे पैक किया जाता है और इसी तरह (उदाहरण के लिए, आप यह तय कर सकते हैं कि आपका आधा सामान मूवर्स के यहां तक पहुंचने से पहले ही फेंक दिया जाएगा - वह हिस्सा है का मंचन)।
एक तकनीकी दृष्टिकोण से, मंचन सभी संक्रियाओं को विभाजित करने में, जो कि विफल हो सकती है (चरणबद्धता) और जो विफल नहीं हो सकती है (प्रतिबद्ध) में विभाजित करके, व्यवहारिक आवागमन का समर्थन करता है:
स्टेज में sucessfull होने के बाद git में प्रतिबद्धता को व्यवहारिक रूप से लागू किया जाता है। मंचन में कई चरण विफल हो सकते हैं (उदाहरण के लिए, आपको प्रतिबद्ध होने की आवश्यकता है, लेकिन आपका HDD 99.9999% पूर्ण है, और git के पास कमिट करने के लिए कोई स्थान नहीं है)। यह स्टेजिंग में विफल हो जाएगा (आपकी रिपॉजिटरी एक आंशिक कमेटी द्वारा दूषित नहीं होगी) और स्टेजिंग प्रक्रिया आपके कमिट इतिहास को प्रभावित नहीं करती है (यह एक त्रुटि के मामले में आपके रिपॉजिटरी को भ्रष्ट नहीं करता है)।