එක් ශාඛාවක සිට තවත් ශාඛාවකට ගොනු වර්ගිකව ඒකාබද්ධ කිරීමට, ධාවනය කරන්න
git merge --no-ff --no-commit branchX
branchXවත්මන් ශාඛාවට ඒකාබද්ධ කිරීමට ඔබට අවශ්ය ශාඛාව කොහිද ?
මෙම --no-commitවිකල්පය මඟින් Git විසින් ඒකාබද්ධ කරන ලද ගොනු සත්ය වශයෙන්ම සිදු නොකර ඒවා වේදිකා ගත කරනු ඇත. ඒකාබද්ධ කළ ලිපිගොනු ඔබට අවශ්ය පරිදි වෙනස් කිරීමට සහ ඒවා ඔබම කැප කිරීමට මෙය ඔබට අවස්ථාව ලබා දෙයි.
ඔබට ගොනු ඒකාබද්ධ කිරීමට අවශ්ය ආකාරය අනුව, අවස්ථා හතරක් ඇත:
1) ඔබට සැබෑ ඒකාබද්ධ කිරීමක් අවශ්යයි.
මෙම අවස්ථාවෙහිදී, ඒකාබද්ධ කරන ලද ලිපිගොනු Git ස්වයංක්රීයව ඒකාබද්ධ කළ ආකාරයට ඔබ පිළිගෙන ඒවා සිදු කරයි.
2) ඔබට ඒකාබද්ධ කිරීමට අවශ්ය නැති සමහර ගොනු තිබේ.
උදාහරණයක් ලෙස, වත්මන් ශාඛාවේ අනුවාදය රඳවා ගැනීමට සහ ඔබ ඒකාබද්ධ වන ශාඛාවේ අනුවාදය නොසලකා හැරීමට ඔබට අවශ්යය.
වත්මන් ශාඛාවේ අනුවාදය තේරීමට, ධාවනය කරන්න:
git checkout HEAD file1
මෙය file1වත්මන් ශාඛාවේ අනුවාදය ලබා ගන්නා අතර file1Git විසින් ස්වයංක්රීයකරණය නැවත ලියයි.
3) ඔබට ශාඛා X හි අනුවාදය අවශ්ය නම් (සත්ය ඒකාබද්ධ කිරීමක් නොවේ).
ධාවනය:
git checkout branchX file1
මෙම අනුවාදය ලබා ඇත file1තුල branchXහා ලියන්නට file1Git විසින් ස්වයංක්රීය-ඒකාබද්ධ.
4) අවසාන අවස්ථාව නම් ඔබට නිශ්චිත ඒකාබද්ධ කිරීම් පමණක් තෝරා ගැනීමට අවශ්ය නම් file1.
මෙම අවස්ථාවෙහිදී, ඔබට නවීකරණය කරන ලද file1කෙලින්ම සංස්කරණය කළ හැකිය , අනුවාදය file1බවට පත්වීමට අවශ්ය ඕනෑම දෙයකට එය යාවත්කාලීන කරන්න, ඉන්පසු කැප වන්න.
Git ට ස්වයංක්රීයව ගොනුවක් ඒකාබද්ධ කිරීමට නොහැකි නම්, එය ගොනුව " ගිලී නැති " ලෙස වාර්තා කර පිටපතක් නිෂ්පාදනය කරනු ඇත, එහිදී ඔබට ගැටුම් අතින් විසඳා ගත යුතුය.
උදාහරණයක් සමඟ වැඩිදුර විස්තර කිරීම සඳහා, ඔබට branchXවර්තමාන ශාඛාවට ඒකාබද්ධ වීමට අවශ්ය යැයි කියමු :
git merge --no-ff --no-commit branchX
git statusනවීකරණය කරන ලද ලිපිගොනු වල තත්වය බැලීමට ඔබ විධානය ක්රියාත්මක කරයි .
උදාහරණයක් වශයෙන්:
git status
# On branch master
# Changes to be committed:
#
#       modified:   file1
#       modified:   file2
#       modified:   file3
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       both modified:      file4
#
කොහේද file1, file2සහ file3ගොනු git ස්වයංක්රීයව ස්වයංක්රීයව ඒකාබද්ධ වී තිබේද?
මෙයින් අදහස් කරන්නේ masterසහ branchXඑම ලිපිගොනු තුනේම වෙනස්කම් කිසිදු ගැටුමකින් තොරව එකට එකතු වී ඇති බවයි.
ධාවනය කිරීමෙන් ඒකාබද්ධ කිරීම සිදු වූයේ කෙසේදැයි ඔබට පරීක්ෂා කළ හැකිය git diff --cached;
git diff --cached file1
git diff --cached file2
git diff --cached file3
ඔබට යම් ඒකාබද්ධ කිරීමක් නුසුදුසු යැයි හැඟේ නම් ඔබට හැකිය
- ගොනුව කෙලින්ම සංස්කරණය කරන්න
- සුරකින්න
- git commit
ඔබට ඒකාබද්ධ වීමට අවශ්ය නැතිනම් file1සහ වර්තමාන ශාඛාවේ අනුවාදය රඳවා ගැනීමට අවශ්ය නම්
දුවන්න
git checkout HEAD file1
ඔබට ඒකාබද්ධ වීමට අවශ්ය නැතිනම් file2අනුවාදය පමණක් අවශ්ය නම්branchX
දුවන්න
git checkout branchX file2
ඔබට file3ස්වයංක්රීයව ඒකාබද්ධ වීමට අවශ්ය නම් කිසිවක් නොකරන්න.
Git දැනටමත් මෙම අවස්ථාවෙහිදී එය ඒකාබද්ධ කර ඇත.
file4ඉහත දැක්වෙන්නේ Git විසින් ඒකාබද්ධ කිරීම අසාර්ථක වීමයි. මෙයින් අදහස් කරන්නේ එකම රේඛාවකින් සිදුවන ශාඛා දෙකෙහිම වෙනස්කම් ඇති බවයි. ගැටුම් අතින් විසඳීමට ඔබට අවශ්ය වන්නේ මෙතැනදීය. ගොනුව කෙලින්ම සංස්කරණය කිරීමෙන් හෝ ඔබට වීමට අවශ්ය ශාඛාවේ අනුවාදය සඳහා පිටවීමේ විධානය ක්රියාත්මක කිරීමෙන් ඔබට ඒකාබද්ධ කිරීම ඉවත දැමිය හැකිය file4.
අවසාන වශයෙන්, අමතක නොකරන්න git commit.