0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mercurial(hg)の使い方~復習しながら新しいことしよう

0
Last updated at Posted at 2026-03-02

以前の記事を参考に進めていきます。
Mercurial(hg)の使い方~詳しく書かないだって自分メモだから~

自分環境(ローカルサーバ)で作業の内容を別サーバへ反映する手順です。

環境

  • Ubuntu
  • Twig使用

いざデプロイに向けて、バージョン管理の基礎から

  1. hg コマンドを認識
$ hg --version
バージョンが返ってこなかったらMercurial(hg)のインストール
sudo apt update
sudo apt install mercurial

2. 初期設定(誰が変更したかを記録)
さきにinitをしてしまっても構わない。
ただ、「履歴を保存(コミット)する時」までに絶対に必要となる。
$\tiny{Mercurial(hg)は履歴を保存する時に「誰がこの変更をしたか(作者名)」というハンコを必ず記録するルールになっている}$
$\tiny{もし設定しないまま commit を実行すると、「誰の作業かわからないから保存できないよ!」とエラーを出して止まってしまう}$

$ hg config --edit
エディターを選びます
Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 2
設定ファイル ~/.hgrc が作られて、編集画面で開きます
該当箇所に記入
username = tago <your.email@example.com>

3. プロジェクトの初期化(hg init)

開発中のプロジェクトフォルダがある一番上の階層で
hg init
.hgが作られます

4. 無視リスト(.hgignore)の作成

  • Composerの自動生成ファイルは管理しない(サーバ側でインストールするため)
    -- composer.json と composer.lock はインストールに必要なので管理する
Composerはサーバでインストール ・本番サーバーで composer install を叩く
・hg で本番サーバーにソースコード(composer.json と lock 含む)を送る
・本番サーバーでcomposer install --no-dev を実行して vendor を作る
「履歴に入れたくないファイル」を登録
.hgignore
---------------
syntax: glob

# Composerの自動生成ファイル
vendor/**

# ログファイル
log/**
*.log

# OSの隠しファイル
.DS_Store
Thumbs.db
----------------

5. 最初の履歴保存(状態の確認・管理対象に追加)

$ hg status
$ hg add

$\tiny{もし、add の時にPermission deniedとなったら自分権限に変えましょう}$

sudo chown -R $(whoami) . 

間違えて追加(add)してしまったファイルやフォルダを取り消すには、hg forget というコマンドを使います。

hg forget ファイル名
hg forget "フォルダ名/**" <ーフォルダごと
もし「全部イチからやり直したい!」という場合は
hg forget "set:added()" <ー今 add したものをすべて一括で取り消す(追加前の状態に戻す)

6. 記録

hg commit -m "初期コミット:ユーザー管理機能のベース完成"

できてるのか確認したいなら

hg log

記録が出てくれば問題なしです

おまけ

ちゃんと記録できてるのかを視覚的に確認したい

SSHトンネリング(ポートフォワーディング)を使う

1. サーバーのターミナルでは、オプションなしで普通に起動

hg serve

2. 自分のパソコン(手元)で、もう1つターミナルを開く

ssh -L 8000:localhost:8000 ユーザー名@サーバーのIP
トンネリングの説明
すでに安全が確認されているSSHの通信パイプ(トンネル)の中に、もう一つWeb用の秘密の通り道を通してしまう

ssh -L 【手元の入口】:【サーバー側から見た目的地】:【目的地の出口】 ユーザー名@サーバー名

ssh -L:
SSHのトンネルを掘る
8000:(手元の入口):
パソコン(手元)のブラウザで http://localhost:8000 にアクセスしたら、その通信を全部トンネルの中に吸い込ませる
localhost:(サーバー側から見た目的地):
トンネルを抜けてサーバー側に到着したら、サーバー自身(localhost)に向かえ!
:8000(目的地の出口):
サーバー自身の8000番ポート(つまり hg serve が待ち構えている場所)に通信を届けろ!

3. ブラウザでアクセス

http://localhost:8000

なんとこんな綺麗な画面がみえちゃうんです
スクリーンショット 2026-03-03 0.26.32.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?