シナリオ 1: 存在しなくなったブランチを削除する
存在しなくなったブランチを削除するには、StackOverflow の質問への回答の指示に従いました。ローカルと Github の両方で Git ブランチを削除するにはどうすればよいですか? 次のコマンドを発行します。
$ git push origin :0.9-doc-rewrite
$ git push origin :path-and-#24
シナリオ 2: 既存の非マスター ブランチでの変更のマージ
アップストリーム/0.9 ブランチを最新の状態にするために、次のことを行いました。
$ git checkout --track origin/0.9
$ git fetch upstream
$ git merge upstream/0.9
$ git push
シナリオ 3: 新しい非マスター ブランチの追跡
これが最善の方法であるかどうかはわかりませんが、私がやったことは次のとおりです。
$ git branch flexible-task-declarations upstream/flexible-task-declarations
Branch flexible-task-declarations set up to track remote branch flexible-task-declarations from upstream.
$ git checkout flexible-task-declarations
$ git push origin flexible-task-declarations
すべてのブランチが同じコミットであることを確認するには:
$ git branch -av
これにより、ローカルとリモートのすべてのブランチが表示され、最新のコミット メッセージと SHA1 ハッシュが表示されます。
シナリオ 3 を処理するためのより良い方法を明らかにする可能性がある Web 調査
単純な Git クローンまたは SVN チェックアウトと比較した場合の Git フォークの主な違いは、そうしない限り、フォークがマスター リポジトリで最新の状態に保たれないことです。幸いなことに、これを行うのに役立つ簡単なツールがあります。フォークは、Git の用語ではマスターとは別のものであり、等しいので、マスターへの変更を追跡したい場合は、フォークされたリポジトリに追跡ブランチを作成し、何かをコミットしたいときはいつでもそれらの変更をフォークのマスター ブランチにマージできます。「GitHub」gem を強くお勧めします。これは、自分のリポジトリに関連する他のリポジトリの変更を簡単に追跡できるようにするためにインストールできるツールです。インストールと使用方法については、このページの下部にある README テキストを参照してください:
http://github.com/defunkt/github-gem/tree/master
Githubのフォーク キューを無視してください。fork キューは、コントリビューターから単一のコミットを選びたいが、ブランチ全体をマージしたくないメンテナーのためのツールです。フォーク キューをいじると、フォークが破損します (ただし、問題が発生したことを読んで修正できます)。github の初心者の多くは、競合する可能性のある変更がたくさんあり、自分のフォークを最新の状態に保つ方法がわからないため、フォーク キューで何かをする必要があると感じています。Keeping your fork up to date を読んで見つけてください!
Django の Github ワークフロー
Django プロジェクトには、Github でコラボレーションする方法に関する説明があり、これは上流の変更を分岐およびプルする標準的な方法と思われるものを使用します。
異なる初期フォーク構成
Michael Hartl のブログのGitHub でのオープン ソース プロジェクト用の Git リポジトリのセットアップというタイトルの Long Nguyen のゲスト投稿では、フォークした Github リポジトリをセットアップする興味深い方法について説明しています。この記事によると、この方法の目標は次のとおりです。
- リポジトリを同期して、それぞれに完全な「公式」リポジトリが含まれるようにします
- 開発者が公式アップデートを取得できるようにする
- master 以外のブランチでの作業を奨励する