git log
に以下のオプションを渡すと、
指定したフォーマットでコミット日付を取得することができます。
$ git log -1 --format=%cd --date=format:"%Y.%m.%d" filename
しかし、yum
でインストールしたGitはバージョンが古い(v1.8.3.1
)ので、
上記のオプションを指定することができません。
$ git log -1 --format=%cd --date=format:"%Y.%m.%d" filename
fatal: unknown date format format:%Y.%m.%d
そこで今回は、この問題を解消するためにGitをソースからインストールしてみます。
内容は非常に単純で、公式ページの操作をそのまま実行するだけです。
公式ページ:使い始める-Gitのインストール#_ソースからのインストール
なお、wget
でソースを取得する方法を記載していますが、
git
でソースを取得する方法の方が簡単です。
環境
Host : Windows7 Virtualbox + Vagrant
Guest : CentOS 7.5
必要なライブラリをインストール
必要なライブラリをインストールします。
$ sudo yum -y install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel perl-ExtUtils-MakeMaker
Gitソースをダウンロード
ソースをダウンロードして解凍します。
インストールしたいバージョンのファイルを取得してください。
ここではv2.15.2
にしました。
最初にインストールしようとした時にサーバの調子が悪かったようでv2.18
をダウンロードしようとしてもエラーになってしまいました。。
今(2018/08/21現在)は問題なくダウンロードできます。
$ cd /usr/local/src
$ sudo wget https://github.com/git/git/archive/v2.15.2.tar.gz
$ sudo tar -zxf v2.15.2.tar.gz
$ cd git-2.15.2
インストール
$ sudo make configure
$ sudo ./configure --prefix=/usr
$ sudo make all doc info
$ sudo make install install-doc install-html install-info
完了
新しいGitが入り、オプションも指定することができるようになりました。
$ git version
git version 2.15.2
$ git log -1 --format=%cd --date=format:"%Y.%m.%d" filename
2018.01.31
おまけ
公式ページにもある通りこの手順でインストールすると、次からはgit
を使ってGitをアップデートすることができるようです。
ということは、yum
でgit
をインストールしてソースを取得し、
make install
した方が楽なんじゃないか?
試してみましょう。 緑の箇所以外は公式ページと同じです。
$ sudo yum -y install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel perl-ExtUtils-MakeMaker
$ sudo yum install -y git
$ sudo git clone git://git.kernel.org/pub/scm/git/git.git /usr/local/src/git
$ cd /usr/local/src/git
$ sudo git checkout v2.18.0
$ sudo make configure
$ sudo ./configure --prefix=/usr
$ sudo make all doc info
$ sudo make install install-doc install-html install-info
$ git version
git version 2.18.0
$ git log -1 --format=%cd --date=format:"%Y.%m.%d" filename
2018.01.31
できました。こっちはバージョン指定もできますし、
wget
を使ってソースを取得するよりも簡単ですね。