गेरिट के लिए प्रलेखन, विशेष रूप से "पुश चेंजेस" सेक्शन, यह बताता है कि आप " refs/for/'branch'
किसी भी Git क्लाइंट टूल का उपयोग करके जादुई रेफरी " को धक्का देते हैं ।
निम्न चित्र इंट्रो से जेरिट के लिए लिया गया है । जब आप गेरिट को धक्का देते हैं, तो आप करते हैं git push gerrit HEAD:refs/for/<BRANCH>
। यह आपके परिवर्तनों को स्टेजिंग क्षेत्र (आरेख, "लंबित परिवर्तन") में धकेलता है । गेरिट के पास वास्तव में एक शाखा नहीं है जिसे बुलाया जाता है <BRANCH>
; यह गिट क्लाइंट के लिए निहित है।
आंतरिक रूप से, Gitit और SSH स्टैक के लिए Gerrit का अपना कार्यान्वयन है। यह इसे "जादुई" refs/for/<BRANCH>
रिफ प्रदान करने की अनुमति देता है ।
जब इन नामस्थानों में से एक में रेफरी बनाने के लिए एक पुश अनुरोध प्राप्त होता है, तो जेरिट डेटाबेस को अपडेट करने के लिए अपना तर्क करता है, और फिर क्लाइंट को ऑपरेशन के परिणाम के बारे में बताता है। एक सफल परिणाम क्लाइंट को यह विश्वास दिलाने का कारण बनता है कि गेरिट ने रेफ बनाया है, लेकिन वास्तव में गेरिट ने रेफ को बिल्कुल नहीं बनाया है। [ लिंक - गेरिट, "ग्रिट्टी डिटेल्स" ]।
एक सफल पैच के बाद (यानी, पैच को जेरिट के पास धकेल दिया गया, [इसे "लंबित परिवर्तन" मंचन क्षेत्र में डाल दिया गया], समीक्षा की गई और समीक्षा पास हो गई), गेरिट ने "लंबित परिवर्तन" से परिवर्तन को "में" धकेल दिया ऑथरिटिव रिपॉजिटरी ", यह गणना करती है कि किस शाखा ने उसे उस जादू के आधार पर धकेल दिया है जब आपने उसे धक्का दिया था refs/for/<BRANCH>
। इस तरह, सफलतापूर्वक समीक्षा की गई पैच सीधे सही शाखाओं से खींचे जा सकते हैं Authoritative Repository
।