tanaka's Programming Memo

プログラミングについてのメモ。

TortoiseGitによるPullRequestの処理方法

  1. 元となるリポジトリGitHubからクローンしてダウンロード。
  2. ダウンロードしたワーキングディレクトリを右クリックして、[TortoiseGit]→[Create Branch...]を選択
  3. 作業用の新しいブランチを作成して切り替える。名前は相手-ブランチ名など(tanakaedu-master)として、[Switch to new branch]にチェックしてOKを押す。
  4. ワーキングディレクトリを右クリック→[TortoiseGit]→[Pull]
    1. Arbitrary URLにチェックを入れて、Pull Requestを送信してきたリポジトリのURLを入力
    2. Remote Branchには、取り出すブランチを選択
    3. [OK]を押す

CONFLICTの報告が表示されるが、マージは成功する。以下、衝突を解消する。

  1. ワーキングディレクトリを開いて、びっくりマークのついている衝突ファイルを右クリック→[TortoiseGit]→[Edit conflicts]を選択。
  2. TortoiseGitMergeが開く。[Theirs]と[Mine]のウィンドウから、必要な行をコピーして、下の[Merged]ウィンドウに貼り付けていく。
  3. [Merged]ウィンドウに必要なコードを移したら、改行などを調整して仕上げ。
  4. [Save]を押す。
  5. 衝突が解消できていたら、[File has no conflicts]ウィンドウが表示されるので、[Mark as resolved(解決にして、衝突を解除する)]を選択。
  6. TortoiseGitMergeを閉じる。

(TortoiseGitMergeは使いづらいし、見づらいので、WinMergeなどの導入も検討。)

以上で、衝突が解消される。マスターへのマージ→リポジトリへのコミット→GitHubへプッシュをして、全てを解決する。

  1. ワーキングディレクトリを右クリック→[Commit-><ブランチ名>]
  2. メッセージを変更するなら変更して[OK]。変更しなくてもよい。
  3. ワーキングディレクトリを右クリック→[TortoiseGit]→[Switch/Checkout...]
  4. Branchを[master]にして[OK]→[Close]
  5. ワーキングディレクトリを右クリック→[TortoiseGit]→[Merge]
  6. Branchを先ほどマージ用に作ったブランチにして[OK]→[Close]
  7. ワーキングディレクトリを右クリック→[TortoiseGit]→[Push]
  8. そのまま[OK]
  9. 必要であれば、オリジナルのリポジトリのUsernameとパスワードを入力してプッシュを完了する。
  10. [Close]


以上で、Pull Requestの取り込み完了・・・結構長い・・・。

Pull Requestが取り込まれたら・・・

  1. Pull Requestを送信した側のワーキングディレクトリを右クリック→[TortoiseGit]→[Pull]
  2. ワーキングディレクトリを右クリック→[TortoiseGit]→[Push]→[OK]→[Close]

以上でGitHubに反映完了。

まとめ

GitHubだけでは完結できない。リポジトリを取り出して処理してPushする。