در سری های قبلی از نقطه نظر تکنیکی کار با git را تا حدودی توضیح دادم (قسمت اول ، قسمت دوم ، قسمت سوم)، اما بعد از یادگرفتن ابزار کاربردها و فرآیند استفاده از ابزار هم مهم هست. یک ویژگی مهم git شاخه زدن یا branching هست، وقتی قصد دارید به صورت همزمان چندین کار رو پیش ببرید از یک نقطه زمانی انشعاب می زنید و زمانی که کارتون تموم شد شاخه رو به شاخه اصلی (معمولا با نام master ) پیوند می زنیم تا در نهایت یک سورس نهایی داشته باشیم. حتما می دونید که به فرآیند پیوند زدن هم merge گفته میشه.  branch و merge امکاناتی بودن که در سیستم های قدیمی تر و در نوع های غیر توزیع شده (مانند subversion) به دلایل مشکلات و سختی هاشون به این شدت استفاده نمی شدند یک سوال خوب درstackoveflow  مورد مقایسه بین merge در سیستم های توزیع شده مثل git با subversion وجود داره که به طور مفصل توضیح داده، قصد ندارم در موردش الان صحبت کنم ، همین قدر بدونید که branching و merge جزهایی از git هستند که شما به راحتی و تعداد زیاد در روز از اون ها استفاده خواهید کرد.

برگردیم به اصل موضوع، عموم ابزارها همیشه شامل اون مثل مشهور"شمشیر دو لبه" می شوند، در عین حال که استفاده از branch برای جدا کردن فرآیند های موازی می تونه مفید باشه اما اگر از یک الگو مناسب برای اینکار استفاده نکنیم نهایتا ممکنه به چیزی شبیه تار و پود قالی برسیم،‌ تعداد زیاد branch ها در زمانی که احتیاج دارید به سابقه کارهاتون دسترسی داشته باشید گیج کننده خواهد بود