iku8blog

Webエンジニアのタダのメモ。

「git -C pull」が使いたかったので、gitのバージョンを2系にした

確かgit -Cオプションは1.8くらいくらいから使えた気がするが、せっかくなので2系にあげてみた。

背景としては、jenkinsでコードデプロイをする時に、git pullをしたかったが、毎回workspaceを消していてgit cloneしていた。 なぜcloneかというと、workspaceが予期せず消えた時にpullだとデプロイがバグってしまうから(ほぼないし、原因解明もすぐだが)。

どうせならリポジトリが作業ディレクトリに存在すればpullするし、なければcloneするみたいな処理を書きたかった。スマートに。

ということで、git -C xxx pullというのを使いたかった。

前置きが長くなったがインストール方法

yumリポジトリ追加してインストール

今入っているgitを削除

sudo yum remove git*

git2系が含まれるyumリポジトリを追加

sudo yum -y install  https://centos7.iuscommunity.org/ius-release.rpm

gitインストール

sudo yum -y install  git2u-all

バージョン確認

 git --version

自分の環境では、git version 2.16.6が入った

ソースからインストールもしてみたが、なぜか-Cオプションが使えなかった。なにかが足りなかったんだろう。調べるのが面倒なので後の方法で対応した。

最終的なgit pull or clone設定

jenkinsに設定したスクリプトは以下の通り

git -C /path/to/repository pull || git clone -b master gitリポジトリ /path/to/repository")

参考: これと全く同じ Install Latest Git ( Git 2.x ) on CentOS 7 | ComputingForGeeks