2009-10-22 14 views
21

私はgitとgithubを私のプロジェクトのために私の小さなチームの開発者と共に使っています。私は助けることができませんが、私たちはそれを正しくやっていないと思います。他の人が自分のプロジェクトでこのワークフローをどのように使用しているかについて聞きたいと思います。gitとgithubのワークフローのベストプラクティスは?

我々はそれを使用する方法

私たちは、それぞれの変更の前に分岐し、マスタに戻すマージし、ローカルにコミットし、私たちのgithubのレポにプッシュ。私たちはテスト環境に入り、github repoのマスターブランチを引き出します。我々はまだrebasefetchまたはtaggingをまだ把握していません。

どのように私はそれを使用したいと思います: 私は別のサーバーにSSHおよびサーバーへの「フェーズ1」のように、特定のタグ付きバージョンを引っ張ることができるようにしたいと思います。これは可能ですか、または2つの異なるgithub reposが必要でしょうか?

git pullウェブサーバーへの特定のブランチまたはgit pushへの新しいエイリアスを作成する予定ですか?

1つのgitリポジトリ内でリリース候補または環境(テスト、開発、制作)を制御できますか?または複数を必要としますか?

解決策がある場合は、特定のtagを取得できますか?

答えて

8

基本的に、1つの「セントラル」GitHubリポジトリで機能することができます。

  • タグは不変のポインタであり、テスト環境や本番環境にチェックアウトするためにいつでも使用(プッシュ)できます。これはいくつかのバリデーションを可能にしますが、通常は開発に役立たない。
  • ブランチをプルすることは、そのブランチ内でいくつかの進化を行うことができることを意味します(コードが実稼働環境に移行するとバグ修正と調整が行われるためです)。考慮する。

したがって、これらのサーバーでは、検証のみ(ステータスが受け入れられているか拒否されているか)、または今後の開発によって異なります。
いずれの場合も、適切な命名規則を持つタグは、履歴内の特定のコミットを追跡するのに便利ですが、開発作業を分離する必要があるたびに分岐が必要です。

4

GitHubでは、私は自分の会社に1つのアカウントを使用します。これは「祝福された」コードが存在する場所です。私は個人的なフォークを維持しています。ここで私はまだ安定していないものを扱います。私のローカルマシンでは、両方のレポを処理するので、マスタは祝福されたコードであり、他のすべてのブランチはフォーク用です。ここに私の.git/configのの一部です:

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = [email protected]:xiongchiamiov/fourU.git 
[branch "hacking"] 
     remote = origin 
     merge = refs/heads/hacking 
[branch "editor"] 
     remote = origin 
     merge = refs/heads/editor 
[branch "problem-utils"] 
     remote = origin 
     merge = refs/heads/problem-utils 
[branch "tests"] 
     remote = origin 
     merge = refs/heads/tests 

[remote "trunk"] 
     fetch = +refs/heads/*:refs/remotes/trunk/* 
     url = [email protected]:xyztextbooks/fourU.git 
[branch "master"] 
     remote = trunk 
     merge = refs/heads/master 

私は会社のレポの権限をコミットしていますので、私はちょうどマージすることができます(またはチェリーピック)他に1つのブランチからコミットし、適切にそれを押し上げロケーション。さて、別のreposは必ずしも必要ではありませんが、これはオープンソースのプロジェクトなので、私は正式なrepoに私の接線で作られたランダムな枝を残さないようにしたいと思います。バージョニングが始まるところに達すると、各バージョン(0.1、0.1.1、0.2など)にタグが付いた0.xブランチがあります。これは、githubが自動的にファイルのtarballを作成するため、特に有利です各タグで、完全な履歴を必要としないマシンに特定のバージョンをプルダウンするのに適しています。

githubブログを読む必要があります。彼らは配備のワークフローを説明しているすてきな記事がありました。

16

Pro Git bookをお読みください。 gitのマニュアルページを1年も読むことができますが、それでも入手できません。マニュアルページを読むことによってgitを学ぶことは、辞書を読むことによって新しい言語を習得しようとするようなものです。本書では、gitでできるワークフローと、gitコマンドをどのようなコンテキストで使用するかについて教えてくれます。

+1

私はここ数週間、gitを "取得"しようとしています。これはまさに私が探していたものです。 –

関連する問題