Команда hg в Linux

Linux 命令大全Полный справочник команд Linux


hg — это инструмент командной строки для распределённой системы контроля версий Mercurial. Mercurial — это лёгкая распределённая система контроля версий, написанная на Python. Она похожа на Git, но имеет более простой дизайн.


Основные понятия hg

Система контроля версий

Система контроля версий (VCS) используется для отслеживания истории изменений файлов и поддержки совместной разработки несколькими людьми. Она делится на централизованные системы (например, SVN) и распределённые системы (например, Git, Mercurial).

Распределённая vs централизованная

  • Распределённая: У каждого разработчика есть полная копия репозитория и его истории.
  • Централизованная: Только один центральный репозиторий хранит всю историю.

Возможности Mercurial

  • Простой и интуитивно понятный дизайн команд
  • Высокая производительность при работе с большими проектами
  • Кроссплатформенная поддержка
  • Расширяемая система плагинов

hg: Установка и настройка

Способы установки

Пример

# Ubuntu/Debian
sudo apt-get install mercurial

# CentOS/RHEL
sudo yum install mercurial

# macOS (с использованием Homebrew)
brew install mercurial

Базовая конфигурация

Правка~/.hgrcфайл:

Пример

[ui]
username = Ваше имя

hg: Основные команды с пояснениями

Операции с репозиторием

Пример

# Инициализация нового репозитория
hg init project_name

# Клонирование существующего репозитория
hg clone https://example.com/repo

Отслеживание файлов

Пример

# Добавить файл в систему контроля версий
hg add filename

# Просмотреть статус репозитория
hg status

# Зафиксировать изменения
hg commit -m "сообщение коммита"

Управление ветками

Пример

# Создать новую ветку
hg branch branch_name

# Переключить ветки
hg update branch_name

# Просмотреть все ветки
hg branches

История изменений

Пример

# Просмотреть историю коммитов
hg log

# Просмотреть историю изменений конкретного файла
hg log filename

# Показать содержимое изменений
hg diff

Удалённые операции

Пример

# Получить удалённые изменения
hg pull

# Отправить локальные изменения
hg push

# Просмотреть удалённые репозитории
hg paths

Расширенное использование hg

Отмена изменений

Пример

# Откатить изменения рабочего каталога
hg revert filename

# Откатиться к определённой версии
hg update -rrevision_number

Слияние ветвей

Пример

# Слить другую ветку в текущую ветку
hg merge branch_name

# После разрешения конфликтов пометить как разрешённые
hg resolve -mfilename

Тегирование

Пример

# Создать тег
hg tag tag_name

# Просмотреть все теги
hg tags

Сравнение hg и Git

Характеристика hg (Mercurial) Git
Кривая обучения Более пологая Более крутая
Дизайн команд Более последовательный Более гибкий
Модель ветвления Именованные ветки Легковесные ветки
Поддержка Windows Хорошая встроенная поддержка Требуется Git Bash
Система плагинов Мощный Мощный

Примеры практического применения

Пример 1: Создание нового проекта

Пример

# 1. Создайте каталог проекта
mkdir myproject
cd myproject

# 2. Инициализируйте репозиторий
hg init

# 3. Создайте файлы и добавьте их
echo "Hello World" > README.txt
hg add README.txt

# 4. Сделайте коммит начальной версии
hg commit -m "Начальный коммит"

Пример 2: Рабочий процесс командной работы

Пример

# 1. Клонируйте удалённый репозиторий
hg clone https://team-server.com/project

# 2. Создайте ветку для функции
hg branch feature-x
hg commit -m "Начало работы над функцией X"

# 3. После разработки отправьте на сервер
hg push --new-branch

# 4. Другие участники получают обновления
hg pull
hg update feature-x

Решения типичных проблем

Проблема 1: Зафиксировано некорректное содержимое

Пример

# Откат к последнему коммиту
hg rollback

# Или создайте обратное изменение
hg backout wrong_commit_id

Проблема 2: Конфликты слияния

  1. Файлы конфликтов будут содержать маркеры
  2. Отредактируйте файл, чтобы разрешить конфликты
  3. Отметить как разрешённый
  4. Завершите коммит слияния

Пример

hg resolve -mФайл с конфликтом
hg commit -m "Конфликт слияния разрешён"

Задача 3: Восстановление удалённых файлов

Пример

# Просмотр истории удалений
hg log --removed

# Восстановление файла из определённой версии
hg revert -rrevision_number filename

Рекомендации по лучшим практикам

  1. Коммитьте часто: Делайте коммиты небольшими шагами, каждый коммит должен быть атомарным
  2. Описательные сообщения: Сообщения коммитов должны чётко описывать изменения
  3. Стратегия ветвления: Используйте разные стратегии для долгоживущих веток (например, development, release) и короткоживущих feature-веток
  4. Регулярная синхронизация: Часто выполняйте pull/push, чтобы оставаться синхронизированными с командой
  5. Резервное копирование важных веток: Отправляйте критически важные ветки на удалённый сервер

Рекомендуемые учебные ресурсы

  1. Официальная документация:https://www.mercurial-scm.org/guide
  2. Электронная книга "Mercurial: The Definitive Guide"
  3. Встроенная справка hg:hg helpилиhg help 命令名
  4. Интерактивное руководство:https://hginit.com/

Освоив команды hg, вы сможете эффективно управлять версиями проекта и сотрудничать с командой. Хотя Git сейчас более популярен, простая архитектура Mercurial делает его отличным выбором в определённых сценариях.


Linux 命令大全Полный справочник команд Linux

Другие расширения