LoginSignup
1
0

More than 3 years have passed since last update.

Gitリポジトリの歴史を書き換えた後のPull Requestはどうなるのか

Posted at

Gitリポジトリに誤って機密情報をcommit/pushしてしまった場合には歴史から抹消しないとセキュリティリスクを抱えてしまいます。
歴史からの抹消は git filter-branch を使えばリポジトリの書き換えは簡単にできます。

さて、filter-branchで歴史を書き換えた場合にGitHub上のPull Requestはどうなるでしょうか?

検証

こちらのリポジトリで以下の手順を検証

  1. config.txt というファイルの追加と変更Pull Requestをマージ
  2. git filter-branch --tree-filter 'rm -f config.txt' HEAD --all で歴史からconfig.txtを抹消
  3. git push -f origin --all でリモートブランチのアップデート

結論

  • リポジトリのログから見た場合
    Screen Shot 2019-08-18 at 18.19.06-fullpage.png

  • マージ済みのPull Requestから見た場合
    Screen Shot 2019-08-18 at 18.20.08-fullpage.png

現在積まれているcommitは書き換わりましたが、マージ済みPull Requestのcommitは書き変わらないようです😱
機密情報をプルリク経由でマージしてしまった場合、リポジトリを一度削除するしか無さそうですね...

備考

  • GitHub以外のサービスでは検証していないので他のホスティングサービスでは挙動が違う可能性があります
1
0
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
1
0