競合を直したあと、その修正だけをコミットするつもりが、作業途中の別ファイルまで含めてしまう。マージ後の確認で、こうした混入を気にする場面はないでしょうか。
The GitHub BlogのHighlights from Git 2.56は、Git 2.56の競合解消支援や、大規模リポジトリ向けの性能改善を紹介しています。
なかでも日々の開発に取り入れやすいのが、競合したファイルに対象を絞ってステージするgit add --resolvedです。
「直したファイルだけ」を操作に組み込む
たとえば、マージでrecipe.txtが競合し、別のnotes.txtには未コミットの編集があるとします。従来のgit add -uは、変更された追跡対象ファイルをまとめてステージするため、無関係な編集も含める可能性がありました。対象を絞るには、ファイルを明示的に指定する必要があります。
git add --resolvedが扱うのは、インデックス上で未解決の競合として残っているパスだけです。競合していないnotes.txtの編集はステージされません。また、対象の通常ファイルに競合マーカーが残っていれば、対象全体のステージを見送り、インデックスを変更せずに知らせます。
この変化の価値は、確認作業の一部をコマンドに任せられる点にあります。「競合解消だけを記録したい」という作業意図を、操作の範囲として表せるようになりました。
任せられるのは範囲の制御まで
ただし、競合マーカーが消えていても、修正内容が正しいとは限りません。同じファイル内で必要な処理を消してしまった場合などは、差分レビューやテストで確かめる必要があります。
チームのマージ手順に取り入れるなら、競合解消後のステージ操作をこのコマンドに置き換え、内容の検証は引き続き行う形が考えられます。Git 2.56が減らせるのは、開発者の判断そのものではなく、その判断と無関係な変更が紛れ込む余地です。操作対象の選別をツールに任せられれば、人は「この修正で動作が正しくつながるか」に確認を集中できます。
関連記事
- How we found 24 Android vulnerabilities using our open source AI security agent
- Watch the winning trailer from the Future Vision XPRIZE, The Gifted.
- Basis completes a tax workbook 2x faster with GPT-6 Astra
参考文献
コメント