Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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を押したらマージ先とマージ元を選択する。スクリーンショット 2019-11-20 19.18.58.png
選択したらcreate pull request をおす。
スクリーンショット 2019-11-20 19.18.39.png
編集タイトルと詳細を書く。
スクリーンショット 2019-11-20 19.22.20.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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away