Mastodonから学ぶGit操作

はじめに

Mastodonは複数の技術が使われており、構築時、バージョンアップ時とGitコマンドを使うのですが、理解できているか怪しいところがありましたのでGitについて勉強しました。
Gitはすでにたくさんのブログ記事があり、多種多様な解説をしてくださっております。
恐らく私と同様に難しいと感じている方が多いのかなと思いました。
今回はGitの全体感を理解して、構築・バージョンアップの操作で何をしているか理解できるレベルを目標とします。

一つの画像にまとめたので、それを使ってそれぞれのコマンドについて解説していきます。
詳細な動作については、今回は触れない方向で進めます。

Mastdonで使うところ

構築時

MastodonをDockerで構築(S3連携)

2017.11.15
こちらはMastodonの構築記事ですが以下のGitコマンドを使っています。

git clone

opt配下にmastodonのレポジトリを取得します。
上記では構築時最新バージョンのタグをcheckoutしてワークディレクトリに反映をしています。
実際のMastodonはこのワークディレクトリ内のプログラム・設定ファイルで起動、動作しています。

バージョンアップ時

git fetch

バージョンアップ時はgit fetchコマンドでリモートレポジトリの情報をローカルレポジトリへ持ってきます。
構築時にcloneしているのでfetchで差分情報を取得します。

git stash

docker-compose.ymlなどの個人で設定が入っているファイルについては毎回書き換えることはせずに一旦このコマンドで退避します。
後述のgit checkoutコマンドでワーキングディレクトリが更新されてしまうので、checkout前に必ず実行します。
Mastodon以外でもプログラム作成中に別のプログラムをcheckoutしないといけない時などに一旦退避したりします。

git tag

タグ情報を表示します。ブランチと似ています。ブランチと違ってファイルの状態が固定されています。

git checkout 【タグ】

fetchで取得した情報をワーキングディレクトリに反映します。
タグを指定することで、任意の状態へワーキングディレクトリの状態をコントロールできます。
例えば、新バージョンが正常動作しなかった時に、別のバージョンへの切り替えが容易になります。
具体的にはHEAD情報が切り替わります。操作しているbranchにHEADがつきます。
タグを指定している場合、どのbranchにもHEADはつきません。

git stash pop stash@{N}

退避したファイルを戻すコマンドです。Nは任意の数値で退避から戻すファイルを指定します。
git stash listで確認できます。

よく使うgitコマンド

編集したファイルをGitHubへ反映する順序として
git add
git commit
git push
の順で実行します。

git add 

ワーキングディレクトリからステージングエリアへcommit対象を移動します。
これは機能ごとにcommitする時にファイルを選別(add)するためなどに使われているようです。
addしてステージングエリアに移動しない限りcommitはされません。
取り消しは「git reset HEAD」で可能。

git commit

ステージングエリアに追加されたファイルをローカルレポジトリのローカルブランチに反映します。
-m でコメントはつけるようにしましょう。

git push

commitして更新したローカルレポジトリをGitHubなどのリモートレポジトリに反映します。

おわりに

今回はMastodonの運用で知っておきたい内容だけまとめました。
普段、カスタマイズをしていないので、紹介できたものはアプリ、ツールを利用するための最低限の内容になってしまったと思いました。
gitは「git log」「git diff」など、ここでは紹介していないですが、使用頻度が多いコマンドがたくさんあります。
いずれ記事に書きたいとは思っておりますが、もっと知りたい方はぜひ調べてみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です