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