Вы не в полной мере использовали возможности контроля версий, если вы не имеете привычки делать частные коммиты своей работы, когда вы идете, в свои собственные частные ветки, которые ни на кого не влияют. Git делает это очень просто - вероятно, проще, чем любой другой VCS, и способ проще, чем SVN.
Это также дает вам возможность легко фиксировать изменения, не связанные с работой, которую вы в данный момент делаете (например, вы заметили несвязанную ошибку), как отдельный коммит. Вы делаете убедитесь, что каждый сделанный вами коммит содержит только связанных изменений, не так ли? Возможно, никакой другой VCS не делает это так просто, как git. Прошлый опыт работы с другими VCS показал, что разработчики обычно слишком ленивы и склонны совершать несвязанные изменения вместе ... что становится болезненным, если одно из изменений необходимо отменить. С мерзавцем ленивость сложнее оправдать. Вы даже можете проверить изменения по отдельности, прежде чем зафиксировать их, используя git stash --keep-index
. Если вы использовали только SVN или что-то подобное, мощь и гибкость практически невообразимы.
Добавьте к этому все другие мерзавцы и свистки, такие как: перебазирование, git bisect
(может быть настоящей находкой во время регрессионного тестирования / отладки), git send-email
(для быстрого уведомления товарищей по команде о коммитах, с которыми вы собираетесь make), работа в автономном режиме, абсолютная скорость , git grep
(для поиска файлов с контролем версий), git blame
(вероятно, лучший инструмент "обвинения"), фактическая пригодная для использования слияние ветвей ... Я мог бы продолжать и продолжать.
Я и некоторые другие члены моей команды используем git-svn в качестве внешнего интерфейса для SVN по этим и другим причинам, и я не могу себе представить, что я делаю это иначе ... ну, разве что, возможно, я использую только git без любой SVN вообще: P