アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

Codexでプルリクの作成に失敗した時の対処方法

Featured image of the post

Codexは、OpenAIが提供する強力な開発支援ツールです。GitHubとの連携を通じてIssueから自動でコード生成し、プルリクエスト(PR)まで作成してくれて、まるで新しい開発メンバーのようにあなたの開発を支援してくれます。そんな開発者にとって強力な味方であるCodexですがPRの作成に失敗してしまうことがあります。Codexが一生懸命つくってくれたコードをPRの作成できずに泣く泣く諦めた方もいらっしゃるのではないかと思います。本記事では、そんな残念な思いをしないようにCodexでプルリクの作成に失敗した時の対処方法を紹介いたします。


[目次を開く]
Image in a image block

なんだか嫌な感じのするアラートです。プルリクが作成できないことによりCodexが作業してくれた修正が無駄になってしまう…、そんな時はgit applyを活用しましょう!

git applyとは?

git apply は、Gitのパッチファイル(diff形式)をローカルのソースコードに適用するコマンドです。このコマンド自体は コミットを作成せず、あくまで「変更差分を適用するだけ」 の機能を持ちます。これにより、事前に内容を確認してからコミットするという柔軟なワークフローが可能です。

git applyで変更差分をローカル環境に適用

結論、プルリクの作成に失敗した時は、git applyで変更差分をローカル環境に適用することでCodexの作業を無駄にすることなく活かすことができます。

PRを作成するの横にある下方向の記号のボタンをクリックしてみてください。

すると「git applyをコピーする」と「パッチをコピーする」という項目が表示されます。各々の手順をみていきましょう。

「git applyをコピーする」手順
Image in a image block

「git applyをコピーする」をクリックすることでクリップボードにコマンドがコピーされるので、そちらをターミナルで実行することでCodexの変更差分をローカル環境に適用することができます。

git applyは、新しくブランチを切って、そちらで変更差分を取り込んで、手動でプルリクを作成するようにしましょう。

注意点としてはWindowsをお使いの方は CMDやPowerSellではなくWSLのターミナルややGit BashのようなBash系じゃないと実行できません。

「パッチをコピーする」手順
Image in a image block

「パッチをコピーする」をクリックするとクリップボードに変更差分がコピーされます。プロジェクトのルートディレクトリにpatch.diffなどのファイルを作成しそちらにペーストして保存してください。作業用のブランチを切り出してから作業されることを推奨します。

その後、以下のコマンドを実行してください。

git apply patch.diff

これで変更が取り込まれるので、あとはプルリクを手動で作成してください。

git apply の基本的な使い方

シンタックス
git apply [パッチファイル]
例:sample.patch を適用する
git apply sample.patch

このコマンドを実行すると、sample.patch に記載された差分が、現在の作業ツリー(working directory)に反映されます。

差分を確認する(--stat)
git apply --stat sample.patch

どのファイルが変更対象かを事前に確認可能です。

実際には適用せずチェックのみ(--check)
git apply --check sample.patch

パッチが適用可能か、衝突しないかを確認できます。

リバース(取り消し)適用(--reverse)
git apply --reverse sample.patch

パッチの変更を元に戻す際に使用。

差分をファイルに出力(git diff)
git diff > sample.patch

今回のケースではCodexの作成したパッチを使っていますが、もちろん、自身でパッチファイルを作成することも可能です。

まとめ

今回は、アラートが表示されると残念な気持ちになってしまうCodexでプルリクの作成に失敗した時の対処方法を紹介しました。

今回、紹介したgit apply は、プルリクを作成せずに修正をローカルで試してみたい際やコミットせずに一時的に変更したい処理などに使うこともできるので、ぜひ活用してみてください。

プログラミング学習でお悩みですか?

現役エンジニアがあなたの学習をマンツーマンでサポートします。

  • 学習の進め方がわからない
  • ポートフォリオの作り方を知りたい
  • 現場で使える技術を学びたい
まずは30分の無料相談

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

プログラミングを学ぶならテックアカデミー

テックアカデミー
無料相談はこちら