修正または機能の作業をしているとき、数秒でその場で改善できる他の小さな問題に出くわすことがあります。すぐにそれらを行い、完成した機能/修正をコミットすると、コミットには複数のことが含まれます。たとえば"add feature X and code clean up"
または"fix bug X and improved logging"
。これを2つのコミットに分割することをお勧めします。同じファイルで2つの変更が発生した場合、1つのファイルを追加してコミットし、もう1つのファイルを追加してから再度コミットすることはできません。したがって、次の3つのオプションが表示されます。
何かに取り組んでいる間、無関係なものを故意に見落とします。
2つの変更を加えてファイルをコピーし、元に戻し、1つの変更を含めてコミットし、もう1つの変更を含めて再度コミットします。
関係のない小さなことは変更せずに、todoリストに追加して後で実行します。
次の理由により、3つのオプションのすべてが本当に好きではありません。
小さな問題を解決しないと、コードの品質が低下する可能性があります。そして、多くの努力をせずに何かを改善する機会を意識的に逃した場合、私は気分が悪いです。
これにより、手作業が増え、エラーが発生しやすくなります。
これはあまり手間がかからないTodoには問題ありませんが、ToDoリストに小さなアイテムを追加して後で再訪することは、すぐに修正するよりもはるかに時間がかかります。
そのような状況にどのように対処しますか?
git add -p
コミットしたいファイルの部分をインタラクティブに選択できるようにするため、たくさん使用しています。クリーンアップが十分に分離されている場合、これは簡単です。分離がさらに難しい場合は、一時的なブランチに状態をコミットし、一時的なブランチに差分がなくなるまで、実際のブランチに変更を手動で追加します。これにはさらに多くの作業が必要ですが、各コミットが単独で機能することを確認できます。