From 9a82baa0f5ce09e10a4f8a109a4eef92f27e26a8 Mon Sep 17 00:00:00 2001 From: syui Date: Sat, 22 Mar 2025 05:31:19 +0900 Subject: [PATCH] fix --- book/pwsh/01_git.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/book/pwsh/01_git.md b/book/pwsh/01_git.md index 62b1039..5f27a77 100644 --- a/book/pwsh/01_git.md +++ b/book/pwsh/01_git.md @@ -139,3 +139,23 @@ $ git pull ssh, gitは鍵認証でpasswordを省略できます。自身が管理するprojectは`git`にしましょう。 +### conflict + +gitを使っていて一番厄介な事は、おそらくconflict(衝突)でしょう。 + +例えば、AさんとBさん、Cさんの三人で開発していたとしましょう。 + +AさんとBさんは二人とも同じcommitからbranchを切って、作業、つまり、commitを進めていました。一つの丸(commit)があり、そこから別々に枝分かれ(branch)して、丸(commit)が進むイメージです。 + +ここで、Bさんのほうが早くにpull-reqを出し、新しいコードが本体にmerge、取り込まれました。 + +次にAさんがpull-reqを出します。しかし、mergeしようとすると、できません。conflictが発生したのです。 + +AさんもBさんも、同じ箇所に別々の機能を実装しようとしていて、Bさんの変更が先に取り込まれていたからです。 + +さて、この解消にはいくつか方法があります。Aさんがconflictを解消するコードに修正するか、mergeするCさんが解消するかです。 + +通常は、Aさんがbranchのcommitを最新のコードに対応したものに作り直します。あるいはpull-reqそのものを作り直すかです。通常は前者になります。branchのcommitを進め、conflictが発生しないように修正するのです。この場合、pull-reqを作り直す必要はありません。 + +修正は、例えば、他の場所に機能を移すか、Bさんの機能を合体させたものを作るかなどの方法があります。 +