[解決済み] 空白以外の変更点のみを追加
質問
私は、テキストエディタに、ファイル保存時に自動的に末尾の空白を切り詰めるように設定しています。そして、末尾の空白に深刻な問題があるオープンソースプロジェクトに貢献しています。
パッチを提出しようとするたびに、まず空白だけの変更をすべて手作業で無視し、関連する情報のみを選択する必要があります。それだけでなく
git rebase
通常、それらのためにいくつかの問題に遭遇します。
そのため、以下のような方法で、空白でない変更点のみをインデックスに追加できるようにしたいと思います。
git add -p
しかし、すべての変更を自分で選択する必要はありません。
どなたか、この方法をご存じないでしょうか?
EDIT: I できない を変更し、メーリングリストでの議論の結果、これを無視することに決定しました。
解決方法は?
Frewの解決策は私が必要としているものではなかったので、これは全く同じ問題のために私が作ったエイリアスです。
alias.addnw=!sh -c 'git diff -U0 -w --no-color "$@" | git apply --cached --ignore-whitespace --unidiff-zero -'
あるいは、単純に実行することもできます。
git diff -U0 -w --no-color | git apply --cached --ignore-whitespace --unidiff-zero -
更新情報
オプションの追加
-U0
と
--unidiff-zero
によると、コンテキストマッチングの問題を回避するために、それぞれ
このコメント
.
で適用されるはずのパッチを基本的に適用します。
add
空白を変更しない場合。の後に
git addnw your/file
にはまだステージングされていない変更があり、それは空白が残っています。
no-colorは必須ではありませんが、私はcolorsをalwaysに設定しているので、これを使わざるを得ません。とにかく、転ばぬ先の杖です。
注意事項
このトリックはそのままでも有効ですが、もしこのトリックを使って空行の変更を
--ignore-blank-lines
となると、事態は複雑になります。 このオプションで
git diff
はいくつかのチャンクを削除するだけで、出力ファイルの行番号がずれてしまうため、結果としてパッチが不正になります。
関連
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] Git でファイルの一部分のみをコミットする
-
[解決済み] Git にファイルモード (chmod) の変更を無視させるには?
-
[解決済み] ステージングされた変更を表示するにはどうしたらいいですか?
-
[解決済み] Gitでファイルの変更を追跡しない、無視する方法とは?
-
[解決済み】Git リポジトリに空のディレクトリを追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】マージ後のコミットでGitエラー - fatal: マージ中に部分コミットができない
-
[解決済み】fatal: 有効なオブジェクト名ではない: 'master'
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
gitアップロードの共通エラー処理
-
[解決済み】ローカルGitブランチとそのリモートブランチを比較する方法
-
[解決済み] Git - node_modules フォルダをどこでも無視するようにしました。
-
[解決済み] "would clobber existing tag "を取り除くには?
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] Git作者不明
-
[解決済み] git-diff で ^M を無視するようにした