Как выбрать git и Mercurial [закрыто]

Оба Git и Mercurial являются DVCS, и это здорово. Интересно, есть ли список конкретных ситуаций, когда одна из этих систем предпочтительнее, например «В мобильной разработке для многих платформ git лучше, потому что ...».

28 голосов | спросил Vladimir Ivanov 19 Maypm11 2011, 14:46:59

7 ответов


42

Операционная система

Вы и /или ваша команда на базе Windows ?: Mercurial меньше хлопот для использования /настройки, чем Git, поскольку вам нужно установить консоль bash (вместо этого вы можете использовать cygwin).

Если вы основаны на linux /mac, любой выбор в порядке, но вам может понравиться git больше из-за всех его электроинструментов.

Опыт работы с DVCS

Если вы новичок в DVCS, выберите Mercurial. Если нет, попробуйте git. В Git есть много игрушек, которые могут сделать вашу кривую обучения более крутой, Mercurial, OTOH, вы научитесь на ветру. Прочтите http://hginit.com/ для очень подробного руководства.

Кроме того, прочитайте http://hginit.com/00.html , если вы пришли из CVS /SVN.

Нуждается

Mercurial - полнофункциональный DVCS, git OTOH Я бы даже сказал, что это почти каркас DVCS (проверьте этот чит-лист out), который может поддерживать более конкретные рабочие процессы для очень больших команд /проектов.

Кроме того, очень важно, git позволяет вам изменять историю вашего репозитория, что можно считать плохим (); Mercurial не позволяет вам изменить свою историю.

В общих чертах, я бы сказал, что git очень хорош. Лично я использую как mercurial, так и git, но я всегда преподаю mercurial своим коллегам.

Нет неправильного выбора

Собственно, ИМХО, вы должны изучить оба, но всегда начинайте с Mercurial. Слишком реально увидеть, как они сравниваются (которые на самом деле несколько более мелкие детали). Я рекомендую вам прочитать эти две статьи:

Путь к DVCS

Сначала попробуйте Mercurial, чтобы сделать ваше знакомство с DVCS более приятным. Я видел, как многие люди пробирались в git и в конечном итоге любили его, но OTOH. Я видел, как люди всецело проникают в меркурийный трепет. После этого, если вы чувствуете, что меркурий недостаточно, вы можете продолжить свой путь с git без проблем.


Обновление: Mercurial теперь лучше позволяет вам изменять историю, см.

ответил dukeofgaming 20 Mayam11 2011, 00:40:48
20

Вы должны использовать git , когда проект или сообщество, в которые вы хотите внести свой вклад, использует git и использовать Mercurial , когда они используют Mercurial . Это может показаться очевидным, но сообщество более важно, чем инструмент.

Я бы посоветовал учиться, поскольку они настолько похожи во многих отношениях, таким образом вы можете в равной степени способствовать проектам и сообществам, которые также используют.


Например, если вы начинаете проект по разработке драйвера устройства Linux, git является очевидным выбором, тогда как если это проект python , hg будет логичным.

Отличное описание того, почему Python выбрал меркурий, можно найти на Блог Бретта Кэннона , который ссылается на его статью PEP 374 - Выбор распределенного VCS для проекта Python , который документирует процесс принятия решений.

Увы, я не мог быстро найти эквивалентную бумагу для сообщества, которое вместо этого выбрало git.


Обновление 2017

Время движется, сообщества меняются, и все мы должны меняться вместе с ними. Хотя мой первоначальный совет о том, что сообщество более важно, чем инструмент, по-прежнему остается верным, многие другие сообщества склоняются к преимуществам git, поэтому вне зависимости от того, используете ли вы hg для личных проектов, в наши дни хорошо стоит узнать, как использовать git в любом случае, особенно с поддержкой github для readthedocs и многих других .

Бретт Кэннонс История за решение переместить Python в GitHub подробно объясняет причины подобных действий многих других проектов и сообществ.

ответил Mark Booth 19 Maypm11 2011, 14:55:04
17

Обычно Mercurial легче изучить, чем Git

Итак, используйте Mercurial (Hg), если вы хотите изучить распределенный контроль версий и быстро получить свой проект для домашних животных.

Онлайн-сервисы, такие как BitBucket предлагают те же функции, что и GitHub для совместных проектов.

ответил Gary Rowe 19 Maypm11 2011, 15:31:33
5

Мы использовали SVN, чем перенесены в MERCURIAL, а недавно в GIT. Git имеет некоторые преимущества немедленного по сравнению с hg: stashing и индекс (более простые атомные коммиты). Чем вы по достоинству оцените легкое ветвление. Вы будете сожалеть о git и пропустить hg, когда что-то пойдет не так, или когда вам нужно глубоко понять какую-то концепцию, такую ​​как «rebasing» или «fast forwarding». Мне очень жаль, что мне приходится вникать в безумие оппонента git, когда мне нужно сделать что-то тривиальное, как «svn revert» ... В заключение: git делает слишком много для большинства проектов, которые его используют, и кривая обучения тоже крутой. (ах, и я действительно смеюсь, когда «git stat» говорит «Вы имели в виду статус?» - я знаю, псевдоним, я знаю ...)

ответил Claudio 20 Mayam11 2011, 00:51:23
3

В течение некоторого времени Mercurial работал лучше в Windows, чем Git, и это было основанием для использования Mercurial. Это также, как правило, легче получить.

Оба Mercurial и Git будут делать то, что вы хотите, с DVCS. Существуют различия, но вряд ли они будут иметь значение в повседневных операциях для большинства людей. Прежде всего, сначала изучите их, чтобы узнать, как использовать другие функции, когда захотите или хотите.

ответил David Thornley 19 Maypm11 2011, 17:54:31
2

Я думаю, все зависит от того, какую платформу вы используете. Я решил использовать git в проекте PHP, который я знал, что все используют * nix, потому что у них не было проблем с вводом команд.

Для моего другого проекта PHP у нас много людей, использующих окна, а также mac и linux. Это был легкий способ использовать Mercurial на всех этих платформах.

  • Windows - TortoiseHG - блестящий!
  • Linux - не уверен - эти парни любят команду
  • Mac - MacHG - я использую себя на своем Mac и очень хорошо.

Также я думаю, что также хорошо, так это то, что и NetBeans, и Eclipse предлагают поддержку Mercurial в значительной степени из коробки. В прошлый раз, когда я пытался использовать git на Eclipse, это было очень плохо, и я закончил использовать консоль. (Это было несколько месяцев назад)

Я думаю, что лучше изучить один, а затем прочитать одно из учебников, в котором показаны отличия в командах и т. д. Изучение двух в то же время просто расстроит вас из-за небольших различий в команде.

ответил Luke 20 Mayam11 2011, 00:02:18
2

Это старый вопрос, и ответы были действительны в момент их написания.

  • Git, похоже, больше не считается «тяжелой работой» для использования в окнах. В настоящее время Microsoft использует Github, так что Git имеет тягу в сообществе Windows. Visual Studio теперь имеет встроенную поддержку Git. Поэтому работа над Windows уже не является основанием для выбора Mercurial.
  • В StackOverflow есть примерно в 10 раз больше вопросов Git (60K), а затем Mercurial questions (6.8K) - так ясно, что они часто используются, но Git, похоже, используется больше.
  • Сегодня на Jobsserve.com (ведущем британском сайте для ИТ-рабочих мест) существует 41 работа, требующая навыков Mercurial и 592 рабочих мест, требующих навыков Git, поэтому гораздо больше компаний, похоже, используют Git.
  • Глядя на Amazon, похоже, больше книг о Git и Mercurial.
  • Однако я считаю, что Mercurial по-прежнему считается более простым для изучения, чем Git.
  • И Git, и Mercurial явно могут выполнить работу для большинства проектов. Они также не отличаются друг от друга

Поэтому сначала взгляните на навыки вашей команды, и если они знают Mercurial, но не Git, это может быть хорошей причиной для использования Mercurial.

В противном случае я думаю, что это очень похоже на войны Videotape моего детства. Betamax был, безусловно, «лучшим» качеством записи, но VHS выиграл и, безусловно, лучший вариант для большинства людей, благодаря тому, что он используется гораздо большим количеством людей.

ответил Ian 18 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 18 Sep 2015 15:39:09 +0300 2015, 15:39:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132