Если вы используете git
в качестве инструмента управления версиями, вы можете изучить основы Mercurial
так же просто, как пирог. Мне было интересно, верен ли их девиз (Работайте проще, работайте быстрее), и я решил выполнять базовые действия по управлению версиями, используя mercurial
, просто используя--help
, и это сработало как шарм!
Установка
В пояснениях не нуждается: sudo apt install hg
.
Если вы используете другие операционные системы, эта ссылка может вам помочь.
Если все пойдет хорошо, вы можете увидеть версию с помощью hg --version
Конфиг mercurial
После установки нам нужно добавить пользователя (как и Git) с помощью этой команды:
hg config --edit
А в файле конфигурации просто введите имя пользователя, и вы можете начать использовать Mercurial:
Инициализировать репозиторий
Используйте эту команду: hg init
.
Теперь вы находитесь в ветке default
, которая похожа на master
в git.
Если вы хотите быть уверены, используйте эту команду: hg branch
, и это покажет вам: default
Создайте файл и зафиксируйте этот файл
Вы можете создать свой файл внутри папки или с помощью этой команды в Linux или Mac OS: touch myFirstFile.js
.
Теперь этот файл не отслеживается. Мы можем использовать командуAdd
, чтобы постоянно отслеживать этот файл: hg add ./myFirstFile.js
.
Создайте другой файл, но не добавляйте его. Например, touch secondFile.js
аналогично git status
, мы можем использовать здесь hg status
, и результат будет таким:
Наш первый добавленный файл отображается с большой буквы (что, как я предполагаю, означает «Добавлен!»), А второй файл (который мы создали, но не добавляли) отображается в виде вопросительного знака.
Чтобы зафиксировать этот файл, мы должны использовать: hg commit --message "my first commit message"
. Теперь, если вы снова введете: hg status
, вы увидите, что этот файл исчез.
Вопрос: Как мне увидеть свои предыдущие коммиты?
Ответ: в точности как то, что вы делаете в Git
hg log
даст вам краткую историю ваших коммитов.
changeset
чем-то похож на хеш коммита Git.
Создайте ветку и объедините ее по умолчанию
Сначала убедитесь, что вы находитесь в ветви по умолчанию: hg branch
результат должен быть default
.
Создайте ветку: hg branch branchName
.
В Git вам нужна была -b
опция для создания и извлечения в эту ветку branch -b branchName
, но здесь вам не нужна опция, и после создания ветки ваша текущая ветка - это то, что вы только что создали. Теперь результатом hg branch
должно быть имя вашей ветки.
Переключение ветвей:
Просто используйте эту команду: hg update branchName
.
Давайте создадим файл в этой ветке и зафиксируем этот файл.
touch thirdFile.js hg add thirdFile.js hg commit thirdFile.js
Теперь мы хотим объединить нашу ветку с веткой по умолчанию. Во-первых, нам нужно изменить нашу текущую ветку: hg update default
. Во-вторых, нам нужно объединить нашу ветку: hg merge -r myBranchName
. Почему -r
? -r
означает доработку.
После слияния Mercurial показывает сообщение:
Имя моей ветки dev
. В моей ветке был файл с именем thirdFile.js
, и после команды слияния он имеет заглавную букву M в начале, когда я использую hg status
для просмотра файлов моего рабочего каталога (я предполагаю, что это означает слияние ?!).
И сообщение ясно говорит, что я должен совершить это слияние:
hg commit --message "merge branch"
Теперь ветка default обновлена и содержит наш thirdFile.js
.
Клонировать удаленный репозиторий
У Mercurial есть тестовый репозиторий, и вы можете легко клонировать его с помощью этой команды:
hg clone https://www.mercurial-scm.org/repo/hello
Толкать и тянуть в основном такие же, как git
, и я собираюсь написать о них отдельную статью.
И вот оно! Надеюсь, теперь вы будете чувствовать себя более уверенно при использовании Mercurial! :)