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してくれます。
(コンフリクトなどがあった時には更新されません)
関連記事
- Gitの最新版をインストールする方法(CentOS7に2系をインストール)
- SSHで初めて接続するホストで、接続するかどうかyes/noを聞かれないようにする
- yumのius(iuscommunity.org)でエラーが出る場合
- 改行コードの自動変換 core.autocrlf core.safecrlf
- シェル実行などでSSHキーを読めない場合
- Linux [Red Hat/CentOSなど]
- 開発環境 ツール類
- Vagrant(ベイグラント)
- Google Chromeの詳細情報を見る方法 HTTPヘッダー、通信状態など開発者向け情報
- phpMyAdminで『information_schema』などを非表示にする方法
- httpd.conf [apache設定ファイル]のデフォルト
- 秀丸 テキストエディタ
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- php.ini が見つからない時
- RAIDの種類
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- Google Chromeでプロキシを使う方法(Chromeのみ・OS全体)
- Smart Defrag パソコンを使っていないときに自動的に最適化してくれるデフラグツール
- 数日おきに設定したcronの実行が1日ずれる理由
- 起動時にネットワークを有効にする方法(eth0を起動する方法)
- Poderosa5で「インデックスが配列の境界外です。」と出る場合の対処法(CentOS8 Ubuntu)
- コミットエラー『 405 Method Not Allowed 』とは
- Rubyのインストール
- lsコマンドで秒を表示する方法(タイムスタンプの書式指定)
- Firefoxでスクロール部分を含めてスクリーンショットをとる Screengrab
- httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
- PostfixサーバからGmailサーバへメールを送信できない場合の対処法
- NTFSフォーマットのストレージの読み書きが異常に遅い場合
- プラグインvagrant-vbguestを使うときの注意点
- SONYのnasneをLinuxにマウントする方法
- yumでupdateするときにconflictsエラーが出る場合 file xxx from install of xxx-jason conflicts with file from package xx.remi
- Tera Term Pro
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
スポンサーリンク