(GitHub) コンフリクト(競合)について
はじめに
GitHubでの開発では、コンフリクト が起こることがあります。
複数人で同じ箇所を更新すると、無駄な時間や変更の消失につながる可能性があります。
基本的に徹底すること
・ブランチを分けて作業
・同じ箇所を更新しないように作業分担
コンフリクトが起こった場合の対処
例: リモートで README を作成しているのにローカルでも作成してしまった場合
対処方法1: git pull
code: terminal
git pull
→ 自動マージできる場合あり(ローカルのみ)。履歴は枝分かれすることがあります。
! 注意: この時点ではリモートは更新されません。push が必要です。 対処方法2: fetch → merge
code: terminal
git fetch
git merge origin/master
→ ローカルに統合される。リモート更新には push が必要。
対処方法3: fetch → rebase
code: terminal
git fetch
git rebase origin/master
→ 自分の変更をリモートの後に並べ替え。履歴はスッキリ。
! 注意: 他人の最新変更がある場合は競合が発生する可能性あり。 安全: push でリモートに反映
まとめ
・コンフリクト は複数人開発でよく起こる
・fetch/merge/rebase はローカル操作。リモートに反映するには push が必要
・安全なフロー: ブランチ分け + 作業分担 + 競合時は慎重に解決