匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

ファイルをコピーする目的で行うgit pullとrsyncの違いを教えてください

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2015/02/06 20:31:57
  • 終了:2015/02/13 20:35:04

回答(2件)

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2015/02/07 10:01:43

gitはバージョン管理システムでであり、バージョン(変更)単位で履歴を管理しているので、バージョン単位での取得や双方の変更のマージなどが行えます。
rsyncはファイル単位でしか見ませんし、履歴も管理しませんので、現時点でのどちらか一方のファイルを選択するしかできません。

匿名質問者

回答ありがとうございました。

2015/02/11 15:27:52
匿名回答2号 No.2

匿名回答2号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2015/02/09 14:24:05

回答しづらい質問ですね…。git pull をファイルをコピーする手段として捉えている人は少ないと思います。ファイルのコピーには効率性やアトミック性など様々な観点がありますが、特に何を比較したいのでしょうか。

匿名回答1号さんが書いておられることの繰り返しになりますが、git pull の主目的はリモートリポジトリの変更をローカルに pull して取り込み、変更を適用することなので、rsync とはそもそも目的が違います。

また、git pull では場合によっては git gc が走る可能性があるためプロセスの実行終了までに想定よりも時間がかかる可能性があります。大抵のケースでは問題にならないと思いますが。

rsync では任意のファイルのコピーが可能ですが、git pull ではリポジトリ内のファイルだけしかコピーできません。.gitignore に追加されているファイルもコピーできません。

匿名回答2号

git と rsync を使うデプロイシステムのどちらも経験がありますが、どちらを選んだとしても特に困りはしません(理由は後述しています)。ただ、最近は git pull でデプロイするのが主流だという印象があります。rsync を使ったデプロイシステムの方が、exclude の設定が細かくできる等柔軟性がありますが、開発者に知識が求められる上にシステムがやや複雑になる傾向があります。

Web アプリのデプロイシステムを設計する際に大きな関心事となるのは atomic な更新ができるかどうかです。atomic にファイルを更新するには、シンボリックリンク経由でソースコードを参照させる(スクリプト言語を使用することを想定しています。)構成がよく用いられます。おおまかに次の手順でデプロイをすることになります。

1. 何らかの手段で本番サーバーにファイルをデプロイする
2. シンボリックリンクの向き先を新しくデプロイしたファイルにかえる

この手順でデプロイすれば、git pull でも rsync でもファイルをデプロイする手段はどちらでも関係ありません。

私が関わったシステムでは、エンジニア以外が本番サーバーにデプロイできるようになっていたので、バージョン管理されていないファイルもデプロイできる必要性がありました。そういうケースでは rsync が git に勝るでしょう。

2015/02/09 23:50:02
匿名質問者

回答ありがとうございます!
まさに私が知りたいことでした。

2015/02/11 15:27:21
匿名質問者

質問者から

匿名質問者2015/02/10 23:48:22

回答ありがとうございます!
webアプリをデプロイするときにどちらが良いのかわからなかったので質問しました。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません