

[GitHub のヘルプ](https://help.github.com/ja/github/collaborating-with-issues-and-
pull-requests/about-pull-requests)に、以下の通り書かれています。

> プルリクエストにコミットをプッシュする場合、フォースプッシュはしないでください。 フォースプッシュをすると、プルリクエストが壊れることがあります。

しかし実際には、いくつかのリポジトリでフォースプッシュがなされているのを見たことがありますし、2018
年から[フォースプッシュを表示する機能が追加された](https://github.blog/changelog/2018-11-15-force-
push-timeline-
event/)ことも知っています。つまり、何が起こるか分かっていればフォースプッシュを使っても構わないということだと思っています。

では、このヘルプではどういう意味でフォースプッシュを禁止しているのでしょうか？
「プルリクエストが壊れる」とは具体的に何が起こるのでしょう。フォースプッシュ前のコミットが見えなくなることを指しているのでしょうか？


CC BY-SA 4.0
2019-10-24T04:36:11.267
59930
2019-10-27T14:24:59.983
19110
question
github
プルリクエスト中でforce pushをしては駄目？


プルリクエストは頻繁に出しているのですが、実際には試せておらずあくまで憶測での話になります。

単にコミットをまとめるだけ(squash相当)なら `force push` も問題なさそうですが、  
プルリクエスト後に分岐の起点を変えてしまうと(rebase)、壊れるのかなと思っています。

**元の状態**

[code]

    A---B---C master
         \
          D---E---F topic (You)
    
[/code]

**改変後 (コミットを圧縮)**

[code]

    A---B---C master
         \
          D' topic (You)
    
[/code]

**改変後 (分岐の起点を変更)**

[code]

    A---B---C master
             \
              D'---E'---F' topic (You)
    
[/code]


CC BY-SA 4.0
2019-10-24T05:20:22.177
59932
2019-10-24T05:20:22.177
3060
59930
answer


ヘルプを読んでもどういう状態を壊れると書かれているのかが僕も分かりませんでしたが、  
レビューでコメント等を入れている場合に紐付け（整合性）が取れなくなることをさしているのかもしれません。  
（指摘しているコードの位置と今の位置が合ってないとか）

コミットが表示されなくなるとかマージできなくなるというのは経験ありませんね。


CC BY-SA 4.0
2019-10-27T14:24:59.983
60017
2019-10-27T14:24:59.983
31238
59930
answer