Windowsで作る - PHPプログラミングの開発環境
このページへのアクセス 今日: 3 / 昨日: 3 総計: 27080
— //y2sunlight 2020-06-26 //
GitHub に戻る
本章は、「GitHub Eclipseによるリポジトリの基本操作」の続編です。今回はEclipseによるGitブランチの操作について説明します。Gitサーバーには GitHub を使用していますが、社内サーバーや他のGitサーバーについてもEclipse側の操作は同じだと思います。
本章の前提は、前章と同じで、GitHubのアカウントと以下のクライアント環境が必要です。GitクライアントにはEclipseを使用します。
クライアント環境
関連記事
リンク
ここでの説明は前章から続いており、EclipseによるGitブランチの操作方法を述べる前に、前提となるリポジトリとブランチの条件を記載しておきます。
Gitサーバ( GitHub )に作成済のリポジトリとブランチは以下の通りです:
hello-world
master
readme-edits
Gitクライアントは、Eclipseで、プロジェクト名は hello-world です。Eclipse側のブランチの状態を[Gitリポジトリー]タブで表示すると以下の通りです。[Gitリポジトリ]を表示するには、Eclipse メニューの[ウインドウ][ビューの表示][その他]から[Git][Gitリポジトリー]を選択して下さい。
origin/master
origin/readme-edits
Eclipse のローカル・ブランチは readme-edits だけです。リモート・トラッキングには2つのリポジトリがあり、どちらのリモートリポジトリもフェッチされています(履歴を取得している状態)。
「リモート・トラッキング」とは、正確には、Remote-tracking branch の事で「リモート追跡ブランチ」とも呼ばれています。リモート追跡ブランチ(Remote-tracking branch)とは、ローカルリポジトリ内に存在して、通常は origin によって定義されたリモートにある同名のブランチと連結し、その状態を追跡しているブランチと考えることができます。リモート追跡ブランチはフェッチ(またはプル)することで自動的に更新されます。
origin
ローカルリポジトリ readme-edits のアップストリーム構成を見るには、[Gitリポジトリー]タブ上で、[ブランチ][ローカル][readme-edits]を右クリックして、[ブランチの構成…]を選択して下さい。
アップストリームがリモートリポジトリのブランチ readme-edits であることが確認できます。これは、Eclipseのプロジェクトをインポートする時に、readme-edits を origin/readme-edits からチェックアウトしているからです。
「アップストリーム」とは、正確には、upstream branch の事で「上流ブランチ」とも呼ばれています。上流ブランチ(upstream branch)とは、ローカルブランチから、履歴を追跡(トラッキング)するように設定したブランチの事です。従って、ローカルブランチの追跡先が上流ブランチと考えられます。パラメータの無い push, fetch, pullは、上流ブランチが対象になります。
上流ブランチは通常はリモートにあってリモート追跡ブランチにより指定されますが、ローカルブランチの場合もあります。尚、上流ブランチをもつローカルブランチは「追跡ブランチ」とも呼ばれています。
まず、準備として、masterブランチ から新しいブランチ license-edits をGitHubで作ります。
license-edits
リポジトリ hello-world に移動します。まだ表示していない場合は、ダッシュボードの左サイドバーから hello-world を選択して下さい。
■ ファイルリスト上部のドロップダウン[branch:master] をクリックします。 ■ テキストボックスに 新しいブランチのブランチ名 license-edits を入力します。 ■ [Branches]内の[Create branch: license-edits from 'master']を選択して下さい。
新しいブランチをチェックアウトする前に、そのブランチをフェッチできるようの'origin'の構成を変更します。Eclipseの[プロジェクト・エクスプローラー]でプロジェクト(hello-world)を右クリックして下さい。
■ [チーム][リモート][アップストリームからフェッチ構成…]を選択して下さい。
■ [拡張…]ボタンを押します。
■ [ソース参照]から license-edits[ブランチ] を選択します。このとき [宛先参照]は自動で入力されます。 ■ 右上の[+仕様の追加]ボタンを押して下さい。
license-edits[ブランチ]
■ [フェッチの仕様]中の refs/heads/license-edits の[更新の強制]にチェックを付けます。 ■ 画面下の['origin'構成に仕様を保存]にチェックを付けます。 ■ [完了]ボタンを押して下さい。
refs/heads/license-edits
■ [保存とフェッチ]ボタンを押して下さい。
■ license-edits が新しくフェッチされました。 ■ [閉じる]ボタンを押して下さい。
[プロジェクト・エクスプローラー]でプロジェクト(hello-world)を右クリックして下さい。
■ [チーム][切り替え][新規ブランチ]を選択して下さい。
■ [選択…]ボタンを押します。
■ [リモートト・ラッキング]の中から origin/license-edits を選択します。 ■ [OK]ボタンを押して下さい。
origin/license-edits
■ [ブランチ名]と他の設定項目が自動でセットされます。 ■ [完了]ボタンを押して下さい。
チェックアウト後、[プロジェクト・エクスプローラー]のプロジェクト名が[hello-world license-edits]になり新しいブランチに自動的に変更されます。
[hello-world license-edits]
チェックアウト後のEclipseのブランチの状態を再び[Gitリポジトリー]タブで表示して見ましょう。
Eclipse のローカル・ブランチに license-edits が、リモート・トラッキングにも origin/license-edits が増えています。
ここから先は、LICENSEファイルを編集してコミットし、基本の流れに従いプルリクエストを行ってマージします。
例えば、ブランチを license-edits から readme-edits に切り替えるには、以下のようにします。
■ [チーム][切り替え]からreadme-edits を選択して下さい。
切り替え後、[プロジェクト・エクスプローラー]のプロジェクト名が[hello-world readme-edits] に変わります。
[hello-world readme-edits]
今度は、Eclipseで新しいブランチを作り、そのブランチをプッシュします。
ブランチ名: hello-edits
hello-edits
手順としては
ここでは、masterブランチをGitHubからチェックアウトする所から始めます。詳細は、上述の「新しいブランチのチェックアウト」を参考にして下さい。以下はその抜粋です。
プロジェクト( hello-world )を右クリックして[チーム][切り替え][新規ブランチ…]を選択して下さい。
■ masterブランチを選択して [完了]ボタンを押して下さい。 ■ masterブランチがチェックアウトされ、プロジェクトがmasterブランチに切り替わります。
既に、masterブランチをチェックアウトしている時は、プロジェクト( hello-world )を右クリックして [チーム][プル]を選択して、masterを最新の状態にします。プルが終了すると以下のダイアログが表示されます。
■ [閉じる]ボタンを押して下さい。
再び、プロジェクト( hello-world )を右クリックして[チーム][切り替え][新規ブランチ…]を選択して下さい。
■ [ブランチ名]に hello-edits を入力します。 ■ [プッシュおよびプルのアップストリームを構成する]は 未チェック にします。 ■ [完了]ボタンを押して下さい。 ■ プロジェクトが hello-edits ブランチに切り替わります。
新しいファイル( hello.php )を作ります。
hello.php
** /hello-world **
<?php echo 'Hello,World!';
ファイルを編集し終えたらステージングします。
■ [コメントメッセージ]を入力して[コミット]して下さい。
プロジェクト( hello-world )を右クリックして[チーム][ブランチのプッシュ 'hello-edits'…]を選択して下さい。
■ [宛先]のリモートとブランチはそのままで。 ■ [プッシュおよびプルのアップストリームを構成する]にチェックを入れます。 ■ [プレビュー]ボタンを押して下さい。
■ [プッシュ]ボタンを押して下さい。
新しいブランチ( hello-edits )が作成されているか、GitHubで確認してみましょう。
■ ファイルリストの右上に [4 branches]と表示されていて新しいブランチが増えていることが分かります。 ■ また、新しくプッシュしたので、上部にも [Compare & pull request]のボタンも表示されています。 ■ ブランチのプルダウン[Branch:master]をクリックして[hello-edits]を選択して下さい。
■ Eclipseからプッシュした hello.php が追加されているのが確認できます。
ここから先は、基本の流れに従いプルリクエストを行ってマージします。
GitHubでは、ブランチの履歴をネットワークグラフで見ることができます。リポジトリ hello-world 画面の[Insights]タブを選択した後、左サイドバーで[Network]を選択します。
前節「Eclipseで新しいブランチ作り、プッシュする」とは異なり、本節では、Eclipseで新しいブランチを作り、それを masterブランチにマージしてからプッシュします。結果は前節と同じですが、レビューを経ずに master に直接プッシュします。
ブランチ名: hello-edits2
hello-edits2
masterブランチに切り替えます。まだの時は、プロジェクト( hello-world )を右クリックして[チーム][切り替え][master]を選択して下さい。
masterブランチをまだチェックアウトしていない場合は、上述の「新しいブランチのチェックアウト」を参考にして下さい。
プロジェクト( hello-world )を右クリックして[チーム][プル]を選択します。
■ [ブランチ名]に hello-edits2 を入力します。 ■ [プッシュおよびプルのアップストリームを構成する]は 未チェック にします。 ■ [完了]ボタンを押して下さい。 ■ プロジェクトが hello-edits2 ブランチに切り替わります。
ファイル( hello.php )を編集します。
<?php echo 'Hello,World!\n'; echo 'This is y2sunlight from Japan.';
ファイルを編集し終えたらステージングした後に、[コミット]します。
マージでは、マージされる方のブランチを表示して作業します。
プロジェクト( hello-world )を右クリックして[チーム][切り替え][master]を選択し、master ブランチへ切り替えます。
[チーム]で[マージ]を選択します。
■ マージするブランチ hello-edits2 を選択します。 ■ [マージ]ボタンを押して下さい。
■ マージが終了しました。 ■ [閉じる]ボタンを押して下さい。
マージしたmasterブランチをアップストリームにプッシュします。
プロジェクト( hello-world )を右クリックして[チーム][アップストリームへブッシュ]を選択します。
■ プッシュが終了しました。 ■ [閉じる]ボタンを押して下さい。
プッシュされているかGitHubで確認してみましょう。
■ ファイルリストの右上に [10 commits]と表示されていて新しいコミットが増えているが分かります。 ■ [10 commits]をクリックして選択して下さい。(数字の10は例です。別の数字かもしれません)
■ コミット履歴の先頭( hello.phpの修正 )が、前項でmasterに直接プッシュした履歴です。
hello.phpの修正
また、ブランチのネットワークグラフは以下のようになっています:
masterに直接プッシュしたので、作業用のブランチはなく、masterのブランチの上にコミットの履歴が乗っています。