4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitHubのPull Requestが勝手にmergeされることがある話

Posted at

はじめに

タイトル通り。GitHub上でPullRequestを作った後、誰もmergeしていないはずなのに何故か勝手にmergeされていて焦った。

準備

  • GitHubで適当なレポジトリを作る
  • 作ったレポジトリをclone
$ git clone git@github.com:hogehoge.git
  • 適当なファイルを作ってmasterブランチにcommit & push
$ git checkout master
$ touch sample0.txt
$ git add .
$ git commit -am "Initial commit"
$ git push -u origin master

勝手にマージされる事例

パターン1

  • 適当なブランチを作る
$ git checkout -b branch1
  • 適当に何かしてコミット
$ touch sample1.txt
$ git add .
$ git commit -am "Commit on branch1"
$ git push --set-upstream origin branch1
  • GitHub上で、 branch1 -> master の Pull Request を作る … (1)
  • ローカル上で、masterbranch1をmerge & push
$ git checkout master
$ git merge branch1
$ git push -u origin master

これで、(1) で作ったPull Requestが勝手にマージされている。

パターン2

  • 適当なブランチを作る
$ git checkout -b branch2
  • 適当に何かしてコミット
$ touch sample2.txt
$ git add .
$ git commit -am "Commit on branch2"
$ git push --set-upstream origin branch2
  • GitHub上で、 branch2 -> master の Pull Request を作る … (2)
  • ローカル上で、masterbranch2にrebase & push (この場合はfast-forwardなのでmergeと変わらないが)
$ git checkout master
$ git rebase branch2
$ git push -u origin master

これで、(2) で作ったPull Requestが勝手にmergeされている。

終わりに

初見だと勝手にmergeされていてビビるが、冷静に考えると当然のことだった。
勝手にmergeされて然るべきときには勝手にmergeされることを知った。

merge先がmasterとかdevelopのときにはこんなことは無いと思うが、
featureブランチで開発していて細かい機能を追加 → featureブランチにPull Request
みたいなときにはうっかりするとやってしまうことがある気がする。(あった。)

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?