ඔබ අපේක්ෂිත ප්රති come ලය කුමක්ද යන්න මුළුමනින්ම පැහැදිලි නැත, එබැවින් පිළිතුරු සහ ඔවුන්ගේ අදහස් දැක්වීමේදී “නිවැරදි” ආකාරය පිළිබඳ යම් ව්යාකූලතාවයක් පවතී. මම දළ විශ්ලේෂණයක් ලබා දීමට උත්සාහ කර පහත විකල්ප තුන බලන්න:
ඒකාබද්ධ කිරීමට උත්සාහ කර ගැටුම් සඳහා B භාවිතා කරන්න
මේ නො වන "සඳහා පවත්නේ අනුවාදය git merge -s ours
වන" නමුත් "සඳහා පවත්නේ අනුවාදය git merge -X ours
" (සඳහා කෙටි වන git merge -s recursive -X ours
:)
git checkout branchA
# also uses -s recursive implicitly
git merge -X theirs branchB
උදා: ඇලන් ඩබ්ලිව්. ස්මිත්ගේ පිළිතුර මෙයයි .
B වෙතින් පමණක් අන්තර්ගතය භාවිතා කරන්න
මෙය ශාඛා දෙකටම ඒකාබද්ධ කිරීමේ බැඳීමක් ඇති කරන නමුත් සියලු වෙනස්කම් branchA
බැහැර කරන අතර අන්තර්ගතය පමණක් තබා ගනී branchB
.
# Get the content you want to keep.
# If you want to keep branchB at the current commit, you can add --detached,
# else it will be advanced to the merge commit in the next step.
git checkout branchB
# Do the merge an keep current (our) content from branchB we just checked out.
git merge -s ours branchA
# Set branchA to current commit and check it out.
git checkout -B branchA
මුසුව අනාචාරයේ පළමු මව් දැන් සිට බව බව සටහන branchB
සහ එකම දෙවන වෙතින් වන branchA
. උදා: ගන්ඩල්ෆ් 458 ගේ පිළිතුර මෙයයි .
B වෙතින් පමණක් අන්තර්ගතය භාවිතා කර නිවැරදි දෙමාපිය පිළිවෙල තබා ගන්න
මෙය සැබෑ "ඔවුන්ගේ අනුවාදය git merge -s ours
" වේ. එයට පෙර විකල්පයේ ඇති අන්තර්ගතයට සමාන අන්තර්ගතයක් ඇත (එනම් එය පමණක් branchB
) නමුත් දෙමව්පියන්ගේ අනුපිළිවෙල නිවැරදි ය, එනම් පළමු දෙමව්පියන් පැමිණෙන්නේ branchA
දෙවැන්නාගෙන් ය branchB
.
git checkout branchA
# Do a merge commit. The content of this commit does not matter,
# so use a strategy that never fails.
# Note: This advances branchA.
git merge -s ours branchB
# Change working tree and index to desired content.
# --detach ensures branchB will not move when doing the reset in the next step.
git checkout --detach branchB
# Move HEAD to branchA without changing contents of working tree and index.
git reset --soft branchA
# 'attach' HEAD to branchA.
# This ensures branchA will move when doing 'commit --amend'.
git checkout branchA
# Change content of merge commit to current index (i.e. content of branchB).
git commit --amend -C HEAD
මේ මොකක්ද පෝල් Pladijs පිළිතුර (තාවකාලික ශාඛා කිරීමකින් තොරව) කරන්නේ.