OK、GIT セットアップのワークフローが正しいことを確認したいだけで、適切に使用する前に完全に理解しています。私はこのワークフローに従っています。このトピックは、初期化と機能ブランチの作成から始めて、自信が持てたら、リリースとホットフィックスの新しいトピックを作成します。これが、同様のワークフローで GIT を使用しようとしている他の人々の助けになることを願っています。
3 人の開発者がいて、全員がローカル マシンで作業する A、B、C と呼びましょう。「開発」、「ステージング」、「プロダクション」、および Unfuddle (集中型サーバーとして) の 4 つのリモート サーバーがあります。開発者 A は、ローカル マシンにファイルのディレクトリを持っています。
したがって、ワークフローは次のようになると思います。
まず、Unfuddle にリポジトリを作成し、ローカルでファイルを Unfuddle サーバーにプッシュする必要があります。
「website」という名前の Unfuddle にリポジトリを作成し、「web」という略語を付けます。
「開発」、「ステージング」、および「本番」サーバーで SSH キーペアを作成し、それらを Unfuddle アカウントに追加します。
開発者 A は、ドキュメント ルートで Git リポジトリを初期化します。
git init
Unfuddle リポジトリを開発者 A のローカル リポジトリに関連付け、アップストリーム サーバーとして指定します。
git remote add unfuddle git@subdomain.unfuddle.com:username/web.git
git config remote.unfuddle.push refs/heads/master:refs/heads/master
開発者 A はすべてのファイルをインデックスに追加します
git add *
開発者 A がすべてのファイルをコミットする
git commit -am 'initial commit'
開発者 A は、ローカルで作成されたコミットを Unfuddle Git リポジトリにプッシュします。
git push unfuddle master
Unfuddle リポジトリ内のすべてのファイルが表示されるはずです。開発者 B と C は、リポジトリを複製して Web サイト ファイルのコピーを取得できます。
`git clone git@subdomain.unfuddle.com:username/web.git`
機能ブランチ:
各開発者は、次のワークフローを使用して機能ブランチの作成を開始できるようになりました。
git checkout -b develop
git checkout -b feature\test develop
- コードを変更する
git commit -a -m "Make test code changes"
git checkout develop
git merge --no-ff feature\test
git branch -d feature\test
git push unfuddle develop
わかりましたので、次の部分はわかりません。機能の変更を集中化された Unfuddle サーバーにプッシュしましたが、他の開発者は変更を取得する必要があります。したがって、「開発」ブランチを作成してから行う必要がありますgit pull unfuddle develop
か? フェッチとマージはプルよりも優れていると読みましたが、これは事実ですか? もしそうなら、それはgit fetch unfuddle develop
それgit merge develop
でしょうか?