3

OK、GIT セットアップのワークフローが正しいことを確認したいだけで、適切に使用する前に完全に理解しています。私はこのワークフローに従っています。このトピックは、初期化と機能ブランチの作成から始めて、自信が持てたら、リリースとホットフィックスの新しいトピックを作成します。これが、同様のワークフローで GIT を使用しようとしている他の人々の助けになることを願っています。

3 人の開発者がいて、全員がローカル マシンで作業する A、B、C と呼びましょう。「開発」、「ステージング」、「プロダクション」、および Unfuddle (集中型サーバーとして) の 4 つのリモート サーバーがあります。開発者 A は、ローカル マシンにファイルのディレクトリを持っています。

したがって、ワークフローは次のようになると思います。

まず、Unfuddle にリポジトリを作成し、ローカルでファイルを Unfuddle サーバーにプッシュする必要があります。

  1. 「website」という名前の Unfuddle にリポジトリを作成し、「web」という略語を付けます。

  2. 「開発」、「ステージング」、および「本番」サーバーで SSH キーペアを作成し、それらを Unfuddle アカウントに追加します。

  3. 開発者 A は、ドキュメント ルートで Git リポジトリを初期化します。

    git init

  4. Unfuddle リポジトリを開発者 A のローカル リポジトリに関連付け、アップストリーム サーバーとして指定します。

    git remote add unfuddle git@subdomain.unfuddle.com:username/web.git

    git config remote.unfuddle.push refs/heads/master:refs/heads/master

  5. 開発者 A はすべてのファイルをインデックスに追加します

    git add *

  6. 開発者 A がすべてのファイルをコミットする

    git commit -am 'initial commit'

  7. 開発者 A は、ローカルで作成されたコミットを Unfuddle Git リポジトリにプッシュします。

    git push unfuddle master

Unfuddle リポジトリ内のすべてのファイルが表示されるはずです。開発者 B と C は、リポジトリを複製して Web サイト ファイルのコピーを取得できます。

`git clone git@subdomain.unfuddle.com:username/web.git`

機能ブランチ:

各開発者は、次のワークフローを使用して機能ブランチの作成を開始できるようになりました。

  1. git checkout -b develop
  2. git checkout -b feature\test develop
  3. コードを変更する
  4. git commit -a -m "Make test code changes"
  5. git checkout develop
  6. git merge --no-ff feature\test
  7. git branch -d feature\test
  8. git push unfuddle develop

わかりましたので、次の部分はわかりません。機能の変更を集中化された Unfuddle サーバーにプッシュしましたが、他の開発者は変更を取得する必要があります。したがって、「開発」ブランチを作成してから行う必要がありますgit pull unfuddle developか? フェッチとマージはプルよりも優れていると読みましたが、これは事実ですか? もしそうなら、それはgit fetch unfuddle developそれgit merge developでしょうか?

4

1 に答える 1

1

しっかり聞こえます。

pullvsに関しては、pull( / )fetchが何をするのかを正確に知っていれば自由に使えると思います。git の初心者の多くは、それが何をするのかを理解せずに使用していますが、あなたはそれを理解しているようです。あなたのチームが違いを理解していることを確認したいだけです。fetchmergepull

私が見ていない唯一のステップは、Webサーバーへの展開です-それらはfetch/mergeまたはpull更新も行う必要があります。このプロセスを手動で開始し、将来的に自動化することを検討することをお勧めします。これは git フックを使用して実行できるはずです (これらは Unfuddle でサポートされているはずです)。これらのスクリプトは、実行しているサーバーの種類によって異なります。

于 2012-11-06T17:20:20.023 に答える