[Git] GitHub: 実録! pull request (後編)

本家のリポジトリが更新されている。
その後、ローカルでも開発を進めた想定。

[markdown]
> * [GitHub: 実録!pull request (前編) | deadwood](https://www.d-wood.com/blog/2014/03/28_5915.html)

## 状況

`add_omnigraffle-pro5_spike` というトピックブランチを作成しました。

“`prettyprinted
% git branch
add_firefox-ja
* add_omnigraffle-pro5_spike
master
“`

`add_firefox-ja` を確認のため `merge` しました。

“`prettyprinted
% git log
* 57dccdb – (11 minutes ago) added omnigraffle pro 5 – DriftwoodJP (HEAD, origin
* c85d2b5 – (7 days ago) added Firefox for Japanese – DriftwoodJP (origin/master
* 9a03118 – (8 days ago) Merge pull request #178 from chrishas35/patch-1 – Mic
“`

## 元のプロジェクトの更新を反映する

### 本家リポジトリの更新を取り込む

“`prettyprinted
% git checkout master
Switched to branch ‘master’
Your branch is up-to-date with ‘origin/master’.
% git fetch upstream
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (46/46), done.
remote: Total 67 (delta 37), reused 49 (delta 21)
Unpacking objects: 100% (67/67), done.
From github.com:caskroom/homebrew-versions
9a03118..0fd2c3d master -> upstream/master
“`

本家リポジトリの変更を比較確認する。

“`prettyprinted
% git diff upstream/master
diff –git a/Casks/firefox-beta-cn.rb b/Casks/firefox-beta-cn.rb
deleted file mode 100644
index 00e2558..0000000
— a/Casks/firefox-beta-cn.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-class FirefoxBetaCn < Cask - url 'https://download.mozilla.org/?product=firefox-29.0b2&os=osx&lang=zh-CN' - homepage 'https://www.mozilla.org/zh-CN/firefox/beta/' - version '29.0b2' - sha256 '9ed32e46990d9f16139c31002a4fd93739dec401c9c6cb518c1a0bf78ee0f435' - link 'Firefox.app' -end diff --git a/Casks/firefox-cn.rb b/Casks/firefox-cn.rb ``` `master` に `merge` します。 ```prettyprinted % git merge upstream/master Updating c85d2b5..0fd2c3d Fast-forward Casks/firefox-beta-cn.rb | 7 +++++++ Casks/firefox-cn.rb | 7 +++++++ Casks/flux-beta.rb | 5 +++++ Casks/keepassx0.rb | 7 +++++++ Casks/keepassx2.rb | 7 ------- Casks/messenger-for-telegram.rb | 7 ------- Casks/rubymine-eap.rb | 6 +++--- firefox-esr-us.rb | 7 +++++++ 8 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 Casks/firefox-beta-cn.rb create mode 100644 Casks/firefox-cn.rb create mode 100644 Casks/keepassx0.rb delete mode 100644 Casks/keepassx2.rb delete mode 100644 Casks/messenger-for-telegram.rb create mode 100644 firefox-esr-us.rb ``` > * [Fork/Clone した手元リポジトリに開発中の更新を取り込む | deadwood](https://www.d-wood.com/blog/2013/10/28_4950.html)

### 同期・rebase した内容をリモートに push する

“`prettyprinted
% git checkout master
Switched to branch ‘master’
Your branch is ahead of ‘origin/master’ by 24 commits.
(use “git push” to publish your local commits)
% git push origin master
Counting objects: 81, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (67/67), done.
Writing objects: 100% (67/67), 11.40 KiB | 0 bytes/s, done.
Total 67 (delta 34), reused 0 (delta 0)
To git@github.com:DriftwoodJP/homebrew-versions.git
c85d2b5..0fd2c3d master -> master
“`

### トピックブランチを削除する

プルリクエスト用のトピックブランチを削除する

“`prettyprinted
% git branch -d add_firefox-ja
Deleted branch add_firefox-ja (was 0fd2c3d).
% git push –delete origin add_firefox-ja
To git@github.com:DriftwoodJP/homebrew-versions.git
– [deleted] add_firefox-ja
“`

## pull request 用に commit を1つにまとめる

開発を進めた `add_omnigraffle-pro5_spike` をまとめ、プルリクエスト用のブランチを作成します。

“`prettyprinted
% git checkout add_omnigraffle-pro5_spike
Switched to branch ‘add_omnigraffle-pro5_spike’
Your branch is based on ‘origin/add_omnigraffle-pro5_spike’, but the upstream is gone.
(use “git branch –unset-upstream” to fixup)
% git checkout -b add_omnigraffle-pro5
Switched to a new branch ‘add_omnigraffle-pro5’
% git rebase -i master
Successfully rebased and updated refs/heads/add_omnigraffle-pro5.
“`

変更した点は以下で確認できます。

“`prettyprinted
% git diff master add_omnigraffle-pro5
diff –git a/Casks/omnigraffle-pro5.rb b/Casks/omnigraffle-pro5.rb
new file mode 100644
index 0000000..20aa28c
— /dev/null
+++ b/Casks/omnigraffle-pro5.rb
@@ -0,0 +1,7 @@
+class OmnigrafflePro5 < Cask + url 'http://www.omnigroup.com/ftp/pub/software/MacOSX/10.6/OmniGrafflePro-5.4 + homepage 'http://www.omnigroup.com/products/omnigraffle' + version '5.4.4' + no_checksum + link 'OmniGraffle Professional 5.app' +end ``` ## pull request する ```prettyprinted % git push origin add_omnigraffle-pro5 Counting objects: 6, done. Delta compression using up to 2 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 523 bytes | 0 bytes/s, done. Total 4 (delta 2), reused 0 (delta 0) To git@github.com:DriftwoodJP/homebrew-versions.git * [new branch] add_omnigraffle-pro5 -> add_omnigraffle-pro5
“`

以下略。

> * [GitHub: 実録!pull request (前編) | deadwood](https://www.d-wood.com/blog/2014/03/28_5915.html)

手を動かすと分かってくる。
[/markdown]