Я не уверен, какой у вас опыт, но я слышал один и тот же (похожий) вопрос, который снова и снова задавали люди из центральной VCS, такой как SVN.Принципиальное различие между ветвями между SVN (централизованным) и Git состоит в том, что ветки Git очень легки и просты в сравнении.В конце концов, в Git ветвь - это не что иное, как помеченный коммит (и коммит указывает на коммит, который указывает на коммит, вниз по линии, пока ветви не сойдутся).
В SVN принято размещать совершенно разные проекты в одном и том же хранилище как отдельные подкаталоги.Это не ветки, но в SVN они выглядят неотличимыми от веток (в SVN это не больше, чем подкаталоги).Однако вы должны понять, что такое ветка .Ветвь - это две почти копии одного и того же программного обеспечения, которые модифицируются и разрабатываются параллельно.Если вы не уверены, что у вас есть ветвь, спросите себя, будут ли эти ветви сходиться или нет.Если не имеет смысла объединять ветви, возможно, они вообще не являются ветвями.
В вашей программе клиент-сервер я бы предположил, что ваш клиент и сервер не являются ветвями.Скорее, это отдельные репозитории.Если вы предпочитаете видеть их историю отдельно, поместите их в отдельные репозитории.Если вы хотите увидеть их историю вместе, поместите их в один и тот же репозиторий, но в разные каталоги.
Интересная особенность Git состоит в том, что из-за распределенной природы вы можете поддерживать клиент и сервер в отдельных репозиториях.а затем позже поместите их в тот же репозиторий, что и разные ветки.Не будет никакой разницы, кроме как быть безумным, пытаясь понять.