2011-02-07 7 views
7

私は自分のウェブサイトの開発を管理することの苦痛を和らげるために探しているデザイナーです。私は最近Gitを発見したばかりですが、これまでは拾いやすいようになっています。私の理解から、2つ以上のリポジトリを使用してこれらの変更を展開する方法としてGitを使用することは可能です。そのうちの1つはマスターです。私は特に、開発環境、テスト環境、およびプロダクションサイトを持つことに興味があります。Gitを使ってウェブサイトの開発を管理するためのアドバイスはありますか?

だから私はいくつかの質問を持っている:

は、この方法でGitリポジトリを使用することを許容できますか?

どちらが優れていますか。ローカル・マシンにマスター・リポジトリーを保管し、本番環境とテスト・サーバーの変更をプッシュしますか?または、本番サーバーにマスターを格納し、変更を加えるためにローカルマシンに引き込む方が良いでしょうか?

どのようにすればどちらの方法を達成できますか?

答えて

3

ここで少し混乱するかもしれないので、私は物事を明確にしようとします。

リポジトリはコードの単なるコピーです。コードの複数のコピー(つまり、開発マシンに1つ、テストサーバーに1つ、実動サーバーに1つなど)をいくつかコピーすることができます。すべてが同じコードから来ているだけで、異なるコミット(変更のセット)や別のブランチで各リポジトリを持つことができます。

私の提案は、このように動作することです。 gitでバージョンアップしたいプロジェクトのルートディレクトリで、コードを使ってリポジトリを作成します。

git init 

ここで、コードのいくつかのブランチを作成できます。 1人は「マスター」と呼ばれ(通常、これは人の名前です)、プロダクションコードの格納に使用されます。別のブランチは「開発」と呼ばれることがあります。リポジトリのローカルコピーの開発ブランチに切り替えて、変更を加え、そのブランチにコミットし、テストサーバーのリポジトリへの変更をプッシュします。通常は「開発」ブランチに設定しておく)。コードをテストした後、開発変更をマスターにマージして、それをプロダクションサーバーリポジトリ(通常は "master"ブランチにあります)にプッシュします。

github.comを使用することを強くお勧めします。実際には単純化して、コードのリモートコピーを安全に保管するのに役立ちます。また、コードのコピーごとに変更をプッシュできるようにgitサーバーを作成する必要はありませんが、githubのコピーを更新するだけで、後でコードの各バージョン(テストや生産)から変更を引き出すことができます。

私はここで少し混乱するかもしれませんが、リポジトリ内のブランチとリポジトリの違いを理解するために本をチェックすることができます。 Gitはあなたのコードを整理しておくのに最適です。あなたがそれと一緒に行くことに決めたら、このサイトを見てください。http://gitimmersion.com/

+0

ありがとう。そのサイトは有用に見えます、私はそれを読んでみましょう。明確にするために、あるブランチから別のブランチへの変更をマスタとマージすることなく変更をマージできますか? – Mindthetic

+0

はい、コミットを独立して他のブランチにマージすることはできますが、マスターを「間のポイント」にする必要はありません。 – acadavid

+0

あなたの例では、マスタリポジトリはセットアップ全体から分散されています。プロダクションサーバー(またはライブサイト)としては使用されません。これにはどんな利点がありますか?どうもありがとう。 – Mindthetic

3

Gitをこのように使用することをお勧めします。私が見たことから、ほとんどの人はローカルマシン上にマスターを持ち、プロダクション/テストサーバーにプッシュします。

あり、ここで、この目的のためにGitを使用しての素敵なガイドがあります:あなたにも試験機を使用する場合は、別のマシン上で再び「リモートリポジトリ」で説明する手順を実行しますhttp://toroid.org/ams/git-website-howto

としてそれを追加別の名前のリモート。

関連する問題