[解決済み] ホワイトスペースの競合を回避したマージ
質問
行末の空白を削除し、タブの前の空白を削除する、約1000行のコードを変更する大きなコミットがあるのですが、問題があります。
また、このプロジェクトには約50のプルリクエストがあり、私のコミットがマージされると、これらすべてが競合することになります。将来のコミットをマージするときに、空白の変更だけのコンフリクトを無視するようにgitを設定する方法はありますか?
git自体の改造やサードパーティツールの使用は不可能ですが、フックを使用するのは問題ありません。
どのように解決するのですか?
git merge -Xignore-all-space
または(より正確には)
git merge -Xignore-space-change
は、マージ中にスペースに関連するすべてのコンフリクトを無視するのに十分であるべきです。
参照 git diff :
--ignore-space-change
空白の量の変化を無視する。
これは、行末の空白を無視し、それ以外の1文字以上の空白の連続をすべて等価と見なします。
--ignore-all-space
行の比較時に空白を無視する。
これは、一方の行に空白があり、他方の行には空白がない場合でも、その差を無視します。
ks1322
は、コメントで良いアドバイスをしています。
と統合する価値があります。
--no-commit
を実行し、実際のコミットの前にマージを確認します。 .
は
OP カルム・マクレー
によると、この場合、マージは中断されずに進行し、プルリクエストパッチに含まれる末尾のスペースがローカルファイルに適用されるとのことです。
しかし、OPはpre-commit hookを使用し、このtrailing spaceを処理します。
(と少し似ていると思います。
これ
また
こちらをご覧ください
).
OPのコミット前フックは こちらをご参照ください :
末尾の空白を削除するだけでなく、タブの前に1~3個のスペースを削除し(私はタブ幅を4に設定しています)、EOLを追加しています。
EOLを追加するコードは、Windowsでファイルを削除するという報告を受けたことがありますが、再現できていません。
関連
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み】git revert <hash> not allowed due to a merge but no -m option was given.
-
[解決済み] ブラウンアウトの一環として、パスワード認証が一時的に無効になっています。代わりに個人用アクセストークンを使用してください[重複]。
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] ローカルファイルシステムからファイルを削除せずに、Git リポジトリからファイルを削除する
-
[解決済み] プル中に自分の変更を優先してGitのマージの競合を解決する
-
[解決済み] 空白文字を削除するにはどうすればよいですか?
-
[解決済み] ローカルのGitの変更を削除するさまざまな方法
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
-
[解決済み] 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:コミットに何も追加されていないが、未追跡のファイルが存在する
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み】gitが「変更をコミットするか、マージする前にstashしてください」と言うのを解決するには?
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push s...
-
[解決済み] 複数のgitコミットを元に戻すには?
-
[解決済み] ERROR: リモートレポ 'origin' のクローン作成に失敗しました。
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。