
私は行末を変更したときにgitが警告するようにする方法や、ファイル全体をめちゃくちゃにするのを防ぐためにさまざまな異なる技術を使用する方法を説明する多くのウェブサイトを見つけました。今は遅すぎると仮定します。ツリーはすでにファイル行の終わりを切り替えるコミットを作成しているので、古いファイルを減算してから、git diff
同じ内容の新しいファイルを追加することを示しています。
私はこれらのオプションを無視するように指示するgit設定オプションまたはコマンドラインフラグを探しています。diff
2行が空白だけ異なる場合は、同じふりをします。ファイルの違いに依存するすべてを処理するには、この構成オプション/フラグが必要です。diff
でもblame
/merge
理想的にも末尾の空白、特に行末を完全に無視したいrebase
と思います。git
どうすればいいですか?
答え1
diffの場合はそうですgit diff --ignore-space-at-eol
。これだけで十分です。 diffとBlameの場合-w
:を使用して、git diff -w
すべてのスペースの変更を上書きできますgit blame -w
。
git apply
との場合は、git rebase
マニュアルに記載されています--ignore-whitespace
。
マージには外部マージツールを使用する必要があるようです。favorite-mergetool
お気に入りの場所にこのラッパースクリプト(テストされていない)を使用できます。マージツール;ランニングgit -c mergetool.nocr.cmd=/path/to/wrapper/script merge
。マージ結果はUnix形式になります。他の形式を好む場合は、すべてを別の形式に変換するか、$MERGED
マージ後に変換します。
#!/bin/sh
set -e
TEMP=$(mktemp)
tr -d '\013' <"$BASE" >"$TEMP"
mv -f "$TEMP" "$BASE"
TEMP=$(mktemp)
tr -d '\013' <"$LOCAL" >"$TEMP"
mv -f "$TEMP" "$LOCAL"
TEMP=$(mktemp)
tr -d '\013' <"$REMOTE" >"$TEMP"
mv -f "$TEMP" "$REMOTE"
favorite-mergetool "$@"
混合行の終わりによる問題を最小限に抑えるには、次の点を確認してください。テキストファイルは次のように宣言されます。。
また、見ることができますgit-mergeは行末の違いを無視できますか?スタックオーバーフローに。