m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Bitbucketでプルリクエスト練習

そもそもプルリクエストってなんなのか分からんかった

ちゃんとは理解していないけど簡単にすると

別のリポジトリの修正を本リポジトリに反映するためにレビューを依頼すること

らしい


まあ、いきなりリポジトリに意味不明な修正が入ったらびっくりするだろうし、本当に問題ないのかチェックすることは必要ですね。


Bさん>Aさんのhogeリポジトリを修正したいけど権限ないな…
Bさん>とりあえず、Aさんのリポジトリのブランチをhoge-mark2で作成して…
Bさん>修正したので、テストして確認したのでマージしてもらいたいな…
Bさん>んじゃプルリクエスト送信っと

Aさん>ん?Bさんからなんか来ているのか?
Aさん>なんかおかしいのかな?ちょっと確認してみよう…
Aさん>問題ないなあじゃあマージしよう…
Aさん>マージ完了っと

みたいなイメージと勝手に思っているけど間違っていたらその都度修正します。

やりかた

今回は練習なので1つのユーザーでブランチを2つに分けて対応する方法

手順
  1. 新規にリポジトリを作成し、masterをコミット、プッシュ
  2. git cloneでクローンリポジトリを作成
  3. branchを作成して、変更を追加
  4. コミット、プッシュを実行
  5. Webサイトでプルリクエストを発行
  6. マージを実施

練習

リポジトリを新規に作成

f:id:m_shige1979:20131215082738j:plain

リポジトリの情報を入力して作成

f:id:m_shige1979:20131215082744j:plain

作成完了

f:id:m_shige1979:20131215082748j:plain

git bashでクローンを作成し、masterへまずコミット
Welcome to Git (version 1.8.3-preview20130601)


Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.

m_shi_000@LENOVO-WIN8-PC ~
$ cd "C:\Tools\bitbucket"

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket
$ mkdir sample1

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket
$ cd sample1/

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1
$ git clone git@bitbucket.org:m_shige1979/sample_test1.git .
Cloning into '.'...
warning: You appear to have cloned an empty repository.

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (master)
$ echo "new Sample1" > README.md

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (master)
$ git add README.md

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (master)
$ git commit -m "First commit. Adding a README."
[master (root-commit) 6a74808] First commit. Adding a README.
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (master)
$ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 239 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@bitbucket.org:m_shige1979/sample_test1.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (master)
$
概要でプッシュの確認

f:id:m_shige1979:20131215082753j:plain

git bashで別ブランチを作成してプッシュする
m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (master)
$ git branch
* master

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (master)
$ git checkout -b update-test
Switched to a new branch 'update-test'

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (update-test)
$ echo "=pull request test=" >> README.md

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (update-test)
$ git add README.md

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (update-test)
$ git commit -m "pull request test"
[update-test a9c4008] pull request test
 1 file changed, 1 insertion(+)

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (update-test)
$ git push -u origin update-test
Counting objects: 5, done.
Writing objects: 100% (3/3), 279 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@bitbucket.org:m_shige1979/sample_test1.git
 * [new branch]      update-test -> update-test
Branch update-test set up to track remote branch update-test from origin.

m_shi_000@LENOVO-WIN8-PC /c/Tools/bitbucket/sample1 (update-test)
$
概要でプッシュ履歴の確認し、プルリクエストをクリック

f:id:m_shige1979:20131215082757j:plain

プッシュしたブランチからmasterブランチへ設定

f:id:m_shige1979:20131215082802j:plain

作成したら、プルリクエストのリンクより確認して、対象のリンクをクリック

f:id:m_shige1979:20131215082810j:plain

プルリクエストの内容を確認して、問題無い場合はマージする

f:id:m_shige1979:20131215082816j:plain

通知メッセージを設定してマージ(ブランチがもう不要な場合はクローズする)

f:id:m_shige1979:20131215082821j:plain

マージされていることを確認

f:id:m_shige1979:20131215082826j:plain

ソース内容を確認して更新されていること

f:id:m_shige1979:20131215082830j:plain

まとめ

実際に公開されているのに手を入れるのは難しいので新規に作ったリポジトリで対応した。
本来は別のユーザーが私が作ったリポジトリに手をいれるものだが、修正されるのはちょっと抵抗があるので自身がつくまでは独自で対応する。

意外と簡単にできたので次は仮想ユーザーを用意して別のユーザーでプルリクエストを送ってみる