Gitを自動的にpullする方法(常に最新の状態にする)

複数のリポジトリをcloneしていたりすると、いちいちpullをするのは面倒です。
ドキュメントのリポジトリは常に最新にしておきたいです。

これを自動的にpullして、ローカルの作業領域を常に最新にする方法です。

Gitがインストールされていないと自動化はできないので、Gitをインストールします。
またシェルコマンドの中にある、「sshCommand」はGitバージョン2.10.0以上で使用できます。
Gitのバージョンが古い時には、2.10.0以上をインストールします。

[参考記事] Gitの最新版をインストールする方法

vagrantを使っている場合は次のようになります。

まず共有ディレクトリを /vagrantとしたとき、共有ディレクトリにGitのSSH秘密鍵を置きます。

共有ディレクトリに、git_pull.shのファイル名で次の内容を保存します。
改行コードはLFにします。

#!/bin/bash

files="/vagrant/*" # vagrantの共有ディレクトリ
key_file="/vagrant/id_rsa" # GitのSSH秘密鍵のパス
for filepath in $files; do
	if [ -d $filepath/.git ] ; then
		git -c core.sshCommand="ssh -o StrictHostKeyChecking=no -i $key_file -F /dev/null" -C $filepath pull --all
	fi
done

vagrantのゲストOS(Linuxなど)にログインして、cronに定期実行の設定をします。

$ crontab -e
*/5 * * * * sh /vagrant/git_pull.sh  > /dev/null 2>&1

これで5分おきに、vagrantの共有ディレクトリにあるGitリポジトリを最新のものにpullしてくれます。
(コンフリクトなどがあった時には更新されません)

関連記事

スポンサーリンク

:first-letter 最初の1文字にスタイルを指定する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る