GitHubで自動生成コードをDiffに表示しない方法

  • 280
    いいね
  • 0
    コメント

結論

ここに書いてある

https://github.com/github/linguist/blob/master/lib/linguist/generated.rb

背景

mockeryだったり、swagger-codegenだったり、go-bindataだったり…
GitHub上に自動生成されたコードを載せている場合、PRやcommitの詳細画面でDiffが邪魔になることがあります。

  • .gitignoreでそもそも自動生成コードをリポジトリに載せない
  • generatedコードに冪等性を持たせてDiffを最小限にする

など対策は色々ありますが、 どうしても生成分をリポジトリに載せたいがGitHub上ではdiffとして見えなくていい 場合もあります。

今までさんざん色々探したんですが、いい対策方法が見つからず・・・
ところがどっこい、GitHub公式の方法で実現できたので記事にしてみました。

GitHubのdiffで特定のファイルを隠す方法

そんなときは、例えばgoの場合はファイルの先頭に

sample.go
// Code generated by xxx
:

と一行コメントしてやるだけで、Diffに表示されなくなります。

https://github.com/kyoh86/qiita/commit/1e151528d570c3613b478245d88aeb168ead2874

https___qiita_com_items_0d9f70d9970ae086f0ce_·_kyoh86_qiita_1e15152_·_GitHub.png

その他の言語でも

色々な言語で対応しているようです。
判定方法はrbのソースを見ればひと通りわかりそう…。

https://github.com/github/linguist/blob/master/lib/linguist/generated.rb

いつからできたんだろう?

結構探したんですが、GitHubのドキュメントやリリースノートも見つけられてません。
そんなん常識だが、とかここで書かれてたやん、みたいな話があったら教えてくれると嬉しいです。