Linux hg コマンド

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 = Your Name

hg よく使うコマンドの詳細

リポジトリ操作

例

# 新規リポジトリの初期化
hg init プロジェクト名

# 既存リポジトリのクローン
hg clone https://example.com/repo

ファイル追跡

例

# ファイルをバージョン管理に追加
hg add ファイル名

# リポジトリの状態を確認
hg status

# 変更をコミット
hg commit -m "コミットメッセージ"

ブランチ管理

例

# 新しいブランチを作成
hg branch ブランチ名

# ブランチを切り替え
hg update ブランチ名

# すべてのブランチを表示
hg branches

変更履歴

例

# コミット履歴を表示
hg log

# 特定ファイルの変更履歴を表示
hg log ファイル名

# 変更内容を表示
hg diff

リモート操作

例

# リモートの変更を取得
hg pull

# ローカルの変更をプッシュ
hg push

# リモートリポジトリを表示
hg paths

hg 上級者向け使い方

変更の取り消し

例

# 作業ディレクトリの変更を取り消し
hg revert ファイル名

# 特定のバージョンに戻す
hg update -rリビジョン番号

ブランチのマージ

例

# 別のブランチを現在のブランチにマージ
hg merge ブランチ名

# 競合を解決後、解決済みとしてマーク
hg resolve -mファイル名

タグ付け

例

# タグを作成
hg tag タグ名

# すべてのタグを表示
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 "Initial commit"

例2: チーム共同作業の流れ

例

# 1. リモートリポジトリをクローン
hg clone https://team-server.com/project

# 2. フィーチャーブランチを作成
hg branch feature-x
hg commit -m "Start feature X"

# 3. 開発完了後、サーバーにプッシュ
hg push --new-branch

# 4. 他のメンバーが更新を取得
hg pull
hg update feature-x

よくある問題の解決

問題1: 誤った内容をコミットした

例

# 最後のコミットに戻す
hg rollback

# または逆の変更を作成
hg backout 誤ったコミットID

問題2: マージ競合

  1. 競合ファイルにはマーカーが含まれます
  2. ファイルを編集して競合を解決
  3. 解決済みとしてマーク
  4. マージコミットを完了

例

hg resolve -m競合ファイル
hg commit -m "Merge conflict resolved"

問題3: 削除したファイルを取り戻す

例

# 削除履歴を表示
hg log --removed

# 特定バージョンのファイルを復元
hg revert -rリビジョン番号 ファイル名

ベストプラクティスの推奨

  1. 頻繁にコミット:小さな単位でコミットし、各コミットの原子性を保つ
  2. 説明的なメッセージ:コミットメッセージは変更内容を明確に説明する
  3. ブランチ戦略:長期ブランチ(開発、リリースなど)と短期フィーチャーブランチで異なる戦略を使用する
  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 コマンド大全

その他の拡張