[メモ]github プルリクエストからマージまで

hotfix! ちょこっとだけ修正してすぐマージしたい時！
# 変更する
まずはlocalのmasterをremoteのmasterと一緒にする。

     git pull
最新の変更が反映されているか確認。

    git log 
新しいブランチをmasterから作成する。ついでに移動する。

    git checkout -b [ブランチ名]

これで新しいブランチはremoteのmasterと同じ状況になる。
ここまでできたら変更を加える。

今回はgitignoreファイルにvimで直接変更を加えてみる。
ブランチを切ってあるので今のディレクトリのファイルはブランチ先のファイルになっているのでvimを使って編集。

    vim .gitignore
一応ちょっとだけvimの使い方を書くと

    [a]   -> 編集モードにして編集
    [esc] -> 編集モード解除
    [:wq] -> 保存して終了
    [:!q] -> 保存としないで終了

# ステージング、コミット、プッシュまで。
それができたらステージング。
## staging
    git add .
うまくできたらこんな感じで表示される。

    Changes to be committed:
       (use "git reset HEAD <file>..." to unstage)

     modified:   .gitignore

## commit

    git commit -m 'コメントを入れる'`
ログを確認して

    git log
## push

    git push --set-upstream origin [ブランチの名前]
※origin直下の場合？
#プルリク作成からmerge
プッシュできたらいよいよプルリク。
CLIもある(https://qiita.com/sl2/items/0ac1c6b4df5d69c0bb1b)
みたいだけどGUIの方が扱いやすいらしいのでwebページへ。

`New pull request `を押したらマージ先とマージ元を選択する。<img width="577" alt="スクリーンショット 2019-11-20 19.18.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83993/abd244e0-7565-0813-9c6e-89246e8f4981.png">
選択したらcreate pull request をおす。
<img width="678" alt="スクリーンショット 2019-11-20 19.18.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83993/75c2e63b-297d-2781-ddce-f816e47529a5.png">
編集タイトルと詳細を書く。
<img width="748" alt="スクリーンショット 2019-11-20 19.22.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83993/9ebbc928-42c7-db0c-a4d3-7118fca2bcc0.png">
その時、Reviewersにpullrequestを確認して欲しい、masterへのmerge権限を持つ人を割り当てる
でcreate pull requestすると
承認待ちになる。
承認してもらったら、merge pull request ボタンを押してcomfirmボタンを押してgithubのmasterへのmergeが完了する。

#サーバーに反映
実際にページを運用しているサーバー側のマスターブランチを最新にして終了。






#もしプルリクしたコミットに編集の余地があった時。
プルリクエストをブラウザからcloseする。
ローカルのコミットを戻す。

    git reset --soft HEAD^
    git log
    git status
    git reset HEAD .gitignore
    git status

`--soft` はcommit履歴のみ消す。
`--hard` はcommit履歴と変更の両方消す。

この方法でプルリクを編集しようと思った場合コンフリクトするので再編集後、pushする前に、remoteの同じ名前で違う変更点のあるブランチを削除しておく。
削除せずにpushしようとするとエラーになる。

# log
`
  505  git checkout master
  506  git checkout master
  507  git branch
  508  git log
  509  git checkout -b ignoreFix
  510  git branch
  511  git log
  512  git branch
  513  git status
  514  git status
  515  vim .gitignore
  516  cat .gitignore
  517  git commit
  518  git add
  519  git add .
  520  git status
  521  git commit -m 'ignoreに追加'
  522  git log
  523  git push
  524  git --set-upstream origin ignoreFix
  525  git push --set-upstream origin ignoreFix
  526  git log
  527  git reset --soft HEAD^
  528  git log
  529  git status
  530  git reset HEAD .gitignore
  531  git status
  532  history
  533  vim .gitignore
  534  cat .gitignore
  535  git add .
  536  git status
  537  git commit -m 'ignoreに追加'
  538  git status
  539  git push --set-upstream origin ignoreFix
  540  git branch
  541  git log
  542  git push --set-upstream origin ignoreFix
  543  git push --set-upstream origin ignoreFix
  544  history
`

# 参考にした記事
https://qiita.com/misakiagata/items/d572e89b5b35e046b7a7
https://qiita.com/konweb/items/621722f67fdd8f86a017
https://riptutorial.com/ja/git/example/3175
https://techacademy.jp/magazine/10168