技術系TIPS
PR

【GitHub】PR作成時に説明欄に変な文字列が入る? 原因は「タイトルの自動分割」だった!

saratogax
記事内に商品プロモーションを含む場合があります

GitHub でコミットをプッシュしたあと、「Compare & pull request」ボタンから PR を作成すると、説明欄(description)に謎の文字列が混ざっていることはありませんか?

たとえば、次のようなケースです。

  • PR タイトルが
    Update example/action version in workflow conf...
    のように途中で「…」と省略されている
  • 説明欄の先頭に
    ...iguration
    のような続きの文字が入っている

実はこれ、GitHub の 自動整形仕様によって発生する自然な現象なんです。

この記事では、なぜこんなことが起きるのか、そしてどう対処すればいいのかをわかりやすく解説します。

現象の概要

SourceTree などの Git クライアントでコミットを行い、そのブランチを GitHub にプッシュしたあとに「Compare & pull request」ボタンから PR を作成すると――

  • タイトルが途中で切れて「…」になる
  • 説明欄(body)の先頭に「タイトルの残りの文字列」が挿入されてしまう

という見た目になります。

特に .github/PULL_REQUEST_TEMPLATE.md を使っている場合、テンプレート本文の 最上部に「…続きの文字列」が混ざってしまう ため、違和感を覚える人も多いはずです。

原因:GitHub の PR 自動生成ロジックによる「72文字分割」

この挙動の原因は、GitHub がコミットメッセージをもとに PR を自動生成する際の処理にあります。

🧩 GitHub の仕様まとめ

  1. コミットメッセージの1行目 → PRタイトル
  2. 2行目以降 → PR本文(description)
  3. ただし、1行目が長い場合(およそ72文字を超える)は、GitHub UI が途中でタイトルを分割し、残りを本文の先頭に挿入してしまう

つまりコミットメッセージが1行だけで長い場合、

Update example/action version in workflow configuration for better compatibility

が GitHub 上では、

タイトル: Update example/action version in workflow conf…

本文: …iguration for better compatibility
(以下、テンプレート本文)

のように扱われる、というわけです。

SourceTree を使うと起きやすい理由

SourceTree のコミット画面では、デフォルトで1行しか入力しないことが多いため、その1行が「タイトル+本文」扱いになってしまいます。

Git 的には問題ありませんが、GitHub が「1行目をタイトル」と解釈するため、長いコミットメッセージだと上記のように自動分割が発生します。

対策・防止方法

✅ 対策1:コミットメッセージを2行構成にする

Git の基本スタイルに沿って、以下のように タイトル行+空行+本文 で書くようにします。

Update example/action version in workflow

Bump from v1.0.0 to v1.1.0 to support Node 20.

これなら、PRタイトルと本文が自然に分かれ、変な分割は起きません。

✅ 対策2:タイトルを72文字以内に収める

短めのタイトル(推奨 50〜70文字)を心がけることで、GitHub が自動分割することを防げます。

✅ 良い例:
Update example/action version in workflow config

⚠️ 悪い例:
Update example/action version in workflow configuration for improved compatibility with newer runtime environments

✅ 対策3:テンプレートの上部にコメント行を入れる

もしどうしてもタイトルの残りが混ざってしまう場合は、PULL_REQUEST_TEMPLATE.md の先頭にコメント行を追加しておくと、本文とテンプレートの間に区切りができ、視覚的にわかりやすくなります。

<!– PR Description starts below –>

まとめ

GitHub の PR 作成時に「説明欄の上にタイトルの残りが出てしまう」現象は、タイトル(コミット1行目)が72文字を超えていたために、GitHub がUI上で自動的に本文へ分割したことが原因です。

特に SourceTree などで「1行の長いコミットメッセージ」を使っている場合に起きやすく、.github/PULL_REQUEST_TEMPLATE.md と組み合わせると余計に目立ちます。

再発を防ぐには:

  • コミットメッセージを 1行目タイトル+空行+本文 に分ける
  • タイトルは 70文字以内 に収める
  • 必要ならテンプレートにコメント行を入れて区切る

この3つを意識するだけで、きれいで読みやすい PR が作れるようになります。

ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました