このファイル(短い)があり、開発の過程でこのファイルに編集するとします。したがって、からの出力git diff
は次のようになります。
..。 @@ -7,6 +7,12 @@ int main(){ //ここにいくつかのコード、セクション1を実装 / ************************************************* ************************** +**新しいセクションヘッダー2と簡単な説明 + ************************************************* ************************* / + +//古いセクション1と2の間にあるコード + + / ************************************************ *************************** **セクションヘッダー2、別の簡単な説明 ************************************************** ************************ /
これは、「このセクションが追加された」の論理的な変更を「このセクションがこの他のセクションのヘッダーの中央に挿入された」に分割するため、私には望ましくないようです。私はこのようなものを期待していました:
..。 @@ -7,6 +7,12 @@ int main(){ //ここにいくつかのコード、セクション1を実装 + / ************************************************ *************************** +**新しいセクションヘッダー2と簡単な説明 + ************************************************* ************************* / + +//古いセクション1と2の間にあるコード + / ************************************************* ************************** **セクションヘッダー2、別の簡単な説明 ************************************************** ************************ /
これを修正できるオプションはありますdiff
か(つまり、パッチを作成している場合、修正を手動で行う必要はありません)?git diff
のマニュアルページにリストされている他のアルゴリズムのいくつかを試しましたが、すべて同じ結果が得られました。
Gitはコミット時にソースツリーのスナップショット全体を保存することを知っています(そしてdiff
sはオンザフライで生成されます)ので、最終的には実際のコンテンツには影響しませんが、たとえば、このようなものがマージ中に問題を引き起こす可能性がありますか?あるレベルでは、私が行った論理的な変更が、diff
それが生成したものに正確に反映されていないことが気になります。