Предпочитаю второй подход, потому что считаю полезною подробную историю и ясно видные места слияний.
Знаю несколько проектов, в которых предпочитают первый подход, когда в истории каждое изменение является единственным и атомарным (неделимым) коммитом, а реальное ветвление скрывается перебазированием веток. Поклонники такого подхода утверждают, что он экономит их время, которое в противном случае непродуктивно затрачивалось бы на просмотр более подробной и более ветвистой истории.
К числу таких проектов относится, например,
Node.