RedHat系ディストリビューションでGitをインストールしソースコードをコミットします。
Gitとはプログラム開発などの複数プロジェクトに対応するために資源のバージョン管理を可能にするフリーのオープンソースソフトウェアです。
開発をしていたのですが、自分のソースコードの何を変更したかを可視化できるようにして保守性を高めたいと思いました。
Gitは複数人で開発を進めるプロジェクトでその力をいかんなく発揮しますが、個人の開発でも役に立ちます。
もし自身がなんらかの理由でいなくなってもソースコードを直接見るよりは遥かに簡単に自身以外も変更を追えるようになりますし、開発途中で問題が発生したときも前バージョンへの切り戻しが簡単です。
Gitのインストールに必要なパッケージをインストールする
Gitのインストール手順でwget・gccなど必要なパッケージをインストールします。
wgetとはWebからコンテンツを取得するためのコマンドラインツールです。
gccとはGNU Compiler Collectionの略で、GNUプロジェクトで開発されたフリーソフトウェアのコンパイラです。
既にインストールしていればインストール手順は不要です。
まずはwgetがインストールされているか下記コマンドで確認します。
yum list installed | grep wget
ない場合にはwgetをインストールするため下記を実行します。
yum -y install wget
次にgccがインストールされているか確認します。
yum list installed | grep gcc
ない場合にはgccをインストールするため下記コマンドを実行します。
yum -y install gcc
他に必要なパッケージもインストールします。
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
別に全てを理解しておく必要はないですが、全てのパッケージの説明を列挙しておきます。
curl-develとは、C言語で書かれたhttpリクエスト等を送信できるcurlの開発者向けパッケージです。
expat-develはXMLパーサのライブラリであるexpatの開発者向けパッケージです。
gettext-develはソフトウェアを現地語化するGNU gettextの開発者向けパッケージです。
openssl-develはSSL/TLSなどの暗号化プロトコルをサポートするOpenSSLの開発者向けパッケージです。
zlib-develはzlib圧縮ライブラリを開発するためのヘッダーファイルとライブラリのパッケージでgzipやPNGの圧縮に使われます。
Gitをインストールする
まずはwgetコマンドでgitの圧縮ファイルを取得します。
現在のパスに配置するため取得したい場所にパスを移動します。
パスは概ねどこでも構いません。
私は/homeのユーザーディレクトリ配下にします。
cd /home/testuser
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.41.0.tar.gz
Gitのバージョンはその時点で最新だったものを入れています。
圧縮ファイルを解凍します。
tar -zxvf git-2.41.0.tar.gz
解凍後、圧縮ファイルを削除しておきます。
rm -rf git-2.41.0.tar.gz
解凍したファイルをビルドします。
cd git-2.41.0
make prefix=/usr/local install
これでインストール完了です。
念の為バージョンを確認して表示されれば問題なくインストールできています。
git --version
Gitでリポジトリを作成する
Gitのインストールができたため、リポジトリを作成します。
Gitリポジトリはバージョン管理を行うためのファイルやディレクトリの集まりを指します。
リポジトリを作成したいパスに移動しGit initを実行します。
今回はリポジトリのパスとソースコードのパスを下記として仮定して記載します。
リポジトリ:/home/testuser/testRepository
ソースコード:/var/www/testcode
cd /home/testuser
git init
これで/home/testuserに.gitディレクトリが作成され、リポジトリ作成が完了です。
.gitディレクトリにはリポジトリに関する情報が保存されます。
リポジトリ名はgit initの後に続けて書くことで指定することもできます。
git init testRepository
指定しなければ実行パスのディレクトリ名がリポジトリ名となります。
Gitリポジトリにソースコードをコミットする
Gitリポジトリを作成したらソースコードを登録します。
リポジトリへの登録はインデックス作成、コミットの順で行います。
Gitのインデックスとはコミット前に変更点を一時保存したものを指します。
下記コマンドでインデックスを作成します。
git add .
.はディレクトリのファイル全てを対象とすることを意味しています。
次にインデックスファイルをコミットします。
git commit
実行するとコメント入力が求められるので入力します。
viエディタでの操作と同様でiキーをクリックして入力モードにしてから打ち込みます。
内容は後で見た時にコミット内容が分かるようにしましょう。
入力を終えたらescキーで入力モードを終了し:wqと順番にキーを押して終了します。
これで初期設定は完了です。
Gitリポジトリにソースコードの差分をコミットする
開発を進めソースコードを変更したら差分をGitリポジトリに登録します。
インデックス作成、コミットという流れは変わりません。
まずは差分を下記コマンドで確認します。
git status
差分が表示されるため確認し、問題なければgit addコマンドでインデックスを作成します。
git add -u
-uオプションをつけることで差分があるファイルのみを対象とできます。
個別にファイルを対象としたgit addをすることも可能です。
git add /home/testUser/test1.txt /home/testUser/test2.txt
インデックス作成が完了したらコミットします。
git commit
このときも先ほどの初期設定時と同様にコメント入力が求められるので入力します。
操作も同様です。
コメント入力しコミットできたら完了です。
下記コマンドでコミットログを確認することが可能です。
git log

