2012-01-25 3 views
1

背景情報:ベストプラクティス(または助言)、3回のSSHログイン、1つのリモートGitのレポ

  • は、我々は現在、3人のウェブプログラマー(良い、実生活の友人、ない不信の問題)です。
  • 各プログラマーは、コードが存在する単一のLinuxサーバーに、sudo powersで自分のユーザー名でSSHを実行します。
  • 私たちはすべて一度に異なるファイルに対して作業を行います。私たちは "あなたはファイルにいますか?"という質問をします。時々。私たちはVimを使用して、ファイルが開かれているかどうかを確認します。
  • 当社の開発コード(はまだありません生産)の/ var/www /の
  • に存在する現在、私はの/ var /リポジトリの/の下にローカルGitのレポを設定します。
  • リモートレポはbitbucketでホストされています。
  • 私はGitにとって非常に新しいです。以前はSubversionを使用していましたが、基本的にはスプーンフィードの指示で、コードを同期してコミットするために何を入力するかが正確に伝えられました。
  • 私はScott ChaconのPro Gitの半分を読んでいます。それは私のGitの知識の大部分です。
  • 重要な場合は、Ubuntu 11.04、Apache 2.2.17、およびGit 1.7.4.1を実行します。

私は、各ユーザーのホームディレクトリの下に3つの別々のローカルリポジトリを置いておく必要があると考え始めました(これはまだすべてが同じサーバー上にあることを忘れないでください)。しかし、もし私たちすべてが/ var/www /にある同じウェブサイトのコードを使って作業しているのなら、それはまだ理にかなっていますか?また

いくつかの少しの関連質問:私の理解から

  • 、私は直接私の地元のレポを変更することとしています(そのためには、デバッグするためには意味、私のレポは、内に常駐することで、ブラウザから見えるようにする必要があります/ var/www /)、あるいは私は開発ディレクトリから編集したファイルを手作業でコピーし、自分のローカルリポジトリを上書きして追跡、コミット、プッシュするとしますか?
  • 私のローカルリポジトリからコピーするとしたら、開発ディレクトリ全体をコピーして上書きして、Gitにはどのファイルが改ざんされていないかを理解させることができますか?または、編集したファイルを手動で追跡する必要がありますか?

答えて

1

通常のセットアップは次のようになります。彼らは好きな場所

  • 各開発者が自分のローカル作業コピーを持っています。おそらく彼らのデスクトップは、ssh上よりもローカルで作業するほうが速いからです。

  • サーバ上の中央の裸のリポジトリ(/var/repos)。

  • post-update中央リポジトリにフックすると、プッシュツーマスタが完了すると/var/wwwが更新されます。 2つの方法があります。

    リポジトリ/チェックアウトなど/var/www/を持つ

  • 経由でファイルをコピーし、それに​​を実行するためにgit archivetarを使用して

    .gitディレクトリをブロックするようにWebサーバーを構成する必要があります。

しかし、あなたは/var/www/作業ディレクトリ—がちょうどgit initgit add .作り始めて、git commitそこ—と徐々にそこから切り替えることができます。

追加の質問を追加する:Gitには、それが知っているファイルのリストがあります。 .git以外のすべてを消去して新しいコンテンツを入れると、それが並べ替えられます。しかし、/var/wwwをリポジトリにする方が簡単です。 .gitがブラウザから見えないようにするには、サーバを設定するか、単にアクセス権を設定するだけで簡単に行えます(ディレクトリサーバのユーザとグループは.gitに設定してください。

+0

これは、各開発者がローカルテストのためにマシン上に独自のローカルLAMPスタックを必要としていることを意味します。コードをローカルリポジトリに移行するのは大した問題ではありませんが、データベースはどうですか?私たちはMySQLを実行し、アプリケーションにはPythonスクリプトを簡単に取り込む2つのテーブルしかありませんが、将来はデータベースをコピーすることができない場合、サーバーのデータベースにリモートで接続する必要がありますか?あるいは、テスト用のサンプルデータを用意するだけですか?レスポンスありがとう! – hobbes3

+0

@ hobbes3:どちらでも構いませんが、それは問題ではありません。ローカルのバージョン管理されていない設定ファイルをデータベース接続設定で使用し、必要に応じて切り替えます。実際には、おそらく最終的には、最終的には、スキーマやその他の破壊的な変更をテストするためのサンプルデータを持つローカルdbと、現実的な負荷の下でテストするための代表的なデータの両方を持つことになります。 –

関連する問題