Я не совсем уверен, что такое «тег», но ветвь - довольно распространенная концепция управления исходным кодом.
По сути, ветвь - это способ работать над изменениями в коде, не затрагивая ствол. Скажем, вы хотите добавить новую довольно сложную функцию. Вы хотите иметь возможность регистрировать изменения по мере их внесения, но не хотите, чтобы они влияли на транк, пока вы не закончили с этой функцией.
Сначала вы создадите ветку. По сути, это копия ствола того времени, когда вы создали ветку. Затем вы сделаете всю свою работу в филиале. Любые изменения, сделанные в ветви, не влияют на транк, поэтому транк по-прежнему пригоден для использования, что позволяет другим продолжать работать там (например, исправление ошибок или небольшие улучшения). Как только ваша функция будет завершена, вы вернете ветку обратно в транк. Это переместит все ваши изменения из ветви в ствол.
Существует множество шаблонов, которые люди используют для веток. Если у вас есть продукт с поддержкой нескольких основных версий одновременно, обычно каждая версия представляет собой ветвь. Там, где я работаю, у нас есть отдел QA и производственный отдел. Перед выпуском нашего кода в QA мы интегрируем изменения в ветку QA, а затем внедряем их. При выпуске в производство мы интегрируемся из ветви QA в ветку Production, поэтому мы знаем, что код, работающий в рабочей среде, идентичен тому, что тестировал QA.
Вот запись Википедии о ветвях , поскольку они, вероятно, объясняют вещи лучше, чем я. :)