CSSとスタイリングのコンフリクト解決

2つのブランチが同じ要素に異なるスタイル変更を適用したCSS、SCSS、Tailwindクラスリストのマージコンフリクトを処理します。

Basic Conflicts

詳細な説明

CSSマージコンフリクト

スタイリングのコンフリクトは、2つのブランチが同じCSSセレクター、クラス名、またはTailwindユーティリティクラスを変更した場合に発生します。CSSルールの順序が詳細度に影響するため、両方のバージョンを組み合わせると予期しない視覚的結果が生じる可能性があり、特に注意が必要です。

典型的なCSSコンフリクト

<<<<<<< HEAD
.card {
  padding: 16px;
  border-radius: 8px;
  background-color: #f5f5f5;
}
=======
.card {
  padding: 24px;
  border-radius: 12px;
  background-color: #ffffff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
>>>>>>> feature/card-redesign

Tailwindクラスのコンフリクト

Tailwindのようなユーティリティファーストのフレームワークでは、class属性にコンフリクトが現れることが多いです:

<<<<<<< HEAD
<div className="p-4 rounded-lg bg-gray-100">
=======
<div className="p-6 rounded-xl bg-white shadow-md">
>>>>>>> feature/card-redesign

解決戦略

CSSコンフリクトではほぼ必ずManual Editが必要です。片方を盲目的に受け入れると正当なデザイン変更が失われるためです。各ブランチの変更の背後にあるデザインの意図を確認し、正しいスタイルを組み込んだマージバージョンを作成してください。

CSSコンフリクトの回避

コンポーネントスコープのスタイリング(CSS Modules、styled-components、またはコンポーネントファイル内のTailwindの@apply)を使用して、2つのブランチが同じグローバルスタイルシートを変更する可能性を減らしましょう。

ユースケース

チームがカードコンポーネントのリデザインを行う一方、別の開発者がアプリ全体のスペーシングを調整しています。両方のブランチが同じCSSクラスを変更し、スタイルシートにマージコンフリクトが現れます。

試してみる — Git Conflict Resolver

フルツールを開く