Во-первых, как указал Аарон, и предполагая, что это недоразумения со стороны участников, вам нужно будет обучать других, работающих над этим репо, когда это необходимо (по вашему определению) для создания названных ветвей, а когда оно не является «т. Я предполагаю, что это решит большинство ваших проблем.
Если вы хотите вернуть все обратно в линию, а ветви открыты, вы можете закрыть каждую ветвь, а затем объединить их по умолчанию. Если вы не слились после закрытия, у вас будет «обвисший» фиксация в вашем графике истории, но это может или не имеет значения для вас. Кроме того, если у вас есть только один «активный» ветвь, которую вы можете проверить с
¯hG ветвей
тогда все коммиты в настоящее время объединены в этой активной ветви, и вам может потребоваться только для слияния которые делят по умолчанию, чтобы привести вещи в соответствие. Однако вы все равно можете закрыть неактивные ветви, которые оставят вас с оборванными фиксациями, если вы не объедините их после закрытия.
Если вы хотите избежать компромиссов с бранами, вы можете посмотреть на использование bookmarks, которые являются своего рода объединением ветвления и пометки.
Если вы хотите минимизировать ветвление (даже анонимное ветвление) на своем репо, вы можете использовать rebase, который является встроенным расширением, которое необходимо включить. Вы можете использовать переключатель переадресации при перетаскивании чужих изменений, чтобы автоматически перемещать свои фиксации после того, как вы совершаете транзакции, и делаете историю линейной. Вы не можете сделать это, как только ваши фиксации уже были вытащены или сдвинуты в другое место (ну, вы, could, но это сделало бы вещи очень сложными в зависимости от того, что происходит с вашими потянутыми фиксациями). Однако использование rebase будет зависеть от того, как вы относитесь к сохранению точной истории.
Для очистки существующего репо может быть немного миссии.Вы можете использовать rebase для перемещения всех коммитов в общую ветку, например по умолчанию, однако, поскольку она изменяет вашу историю, она больше не будет «совместима» с существующими клонами этого репо. Таким образом, вам придется использовать rebase, чтобы изменить вашу историю, а затем заставить всех (включая серверы) отменить измененное репо и удалить старый (они не могут даже вытащить какие-либо выходы из старого в измененное репо).