බෙදා හරින ලද මූලාශ්‍ර පාලන පද්ධතිය මුදා හැරීම Git 2.22

විසින් ඉදිරිපත් කරන ලදී බෙදා හරින ලද මූලාශ්ර පාලන පද්ධතියක් නිකුත් කිරීම Git 2.22.0. Git යනු අතු බෙදීම සහ ඒකාබද්ධ කිරීම මත පදනම්ව නම්‍යශීලී රේඛීය නොවන සංවර්ධන මෙවලම් සපයන වඩාත් ජනප්‍රිය, විශ්වාසනීය සහ ඉහළ කාර්ය සාධන අනුවාද පාලන පද්ධති වලින් එකකි. ඉතිහාසයේ අඛණ්ඩතාව සහ ප්‍රතික්‍රියාශීලී වෙනස්කම්වලට ප්‍රතිරෝධය සහතික කිරීම සඳහා, එක් එක් කැපවීම තුළ සම්පූර්ණ පෙර ඉතිහාසය ව්‍යංගයෙන් හෑෂ් කිරීම භාවිතා කරනු ලබන අතර, සංවර්ධකයින්ගේ ඩිජිටල් අත්සන් සමඟ තනි ටැග් සහ කැපවීම් සහතික කිරීමට ද හැකිය.

පෙර නිකුතුව හා සසඳන විට, නව අනුවාදයේ වෙනස්කම් 745 ක් ඇතුළත් වූ අතර, සංවර්ධකයින් 74 දෙනෙකුගේ සහභාගීත්වයෙන් සකස් කරන ලද අතර ඉන් 18 ක් පළමු වරට සංවර්ධනයට සහභාගී වූහ. ප්රධාන නවෝත්පාදන:

  • 1.18 නිකුතුවේ සිට ලබා ගත හැකි, නව කැපුම් ප්‍රතිබේස් මාදිලිය "git rebase --rebase-merges" පැරණි "--preserve-merges" විකල්පය ප්‍රතිස්ථාපනය කරයි, එය දැන් අවලංගු කර ඇත. "git rebase" මෙහෙයුම නව මූලික කැපවීමක් සමඟ කැපවීම් මාලාවක් ප්‍රතිස්ථාපනය කිරීමට භාවිතා කරයි, උදාහරණයක් ලෙස, ශාඛාවට පසුව එකතු කරන ලද නිවැරදි කිරීම් ඇතුළත් ප්‍රධාන ශාඛාවේ වත්මන් තත්ත්වයට යම් නව විශේෂාංගයක් වර්ධනය කරන වෙනම ශාඛාවක් ගෙන යාමට. :

    o - o - o (මගේ විශේෂාංගය)

    /

    o - o - o - o - o (මාස්ටර්)

    o - o - o (මගේ විශේෂාංගය)

    /

    o - o - o - o - o (මාස්ටර්)

    සංක්‍රමණික ශාඛාවක ශාඛා ව්‍යුහය ආරක්ෂා කිරීම සඳහා, “--preserve-merges” විකල්පය මීට පෙර භාවිතා කළ හැකි අතර, අන්තර්ක්‍රියාකාරී මාදිලියේ (git rebase -i --preserve-merges) ධාවනය වන විට, කැපවීම් ඉතිහාසය සංස්කරණය කිරීමට ඉඩ ලබා දෙන නමුත්, ගබඩා ව්යුහයේ සම්පූර්ණ සංරක්ෂණය සහතික නොකළේය. නව “--rebase-merges” මාදිලිය මඟින් සංක්‍රමණය වන ශාඛාවේ වෙනස්කම් වල ව්‍යුහය සුරැකීමට ඔබට ඉඩ සලසයි, කැපවීම් මකාදැමීම, නැවත සමූහගත කිරීම සහ නැවත නම් කිරීම ඇතුළුව අන්තර්ක්‍රියාකාරී මෙහෙයුම් රාශියක් සපයයි.

    උදාහරණයක් ලෙස, "--rebase-merges" එය ඉඩ සංක්‍රමණික ශාඛාවේ ශාඛා ව්‍යුහය පවත්වාගෙන යන අතරම, වෙනම ශාඛාවක සිට නව ප්‍රධාන ශාඛාවකට කැපවීම් නැවත උඩුගත කිරීම සහ පියාසර කිරීමේදී කැපවීම් සටහන් සඳහා යම් වෙනස්කම් සිදු කිරීම.

  • “git branch new A...B” සහ “git checkout -b new” යන ඉදිකිරීම් භාවිතා කරමින් තවත් ශාඛා දෙකක ඒකාබද්ධ පදනම (ඒකාබද්ධ පදනම, පොදු මුතුන්මිත්තෙකුට බැඳීම) තීරණය කිරීමේ ප්‍රතිඵලය මත පදනම්ව නව ශාඛාවක් නිර්මාණය කිරීම සඳහා සහය එක් කරන ලදී. A...B", එහි "A ...B" නිශ්චිත කැපවීම් දෙකක් අතර ඒකාබද්ධ පදනමක් නිර්වචනය කිරීම ඇතුළත් වේ, "git Checkout A...B" HEAD මූලික කැපවීම වෙත මාරු කරන ආකාරය සහ "වෙනස A. ..B" මගින් පෙන්නුම් කරන්නේ කැපවීම "B" සහ එම "A" "Ancestor" අතර ඇති වෙනස්කම්ය.

    උදාහරණයක් ලෙස, වෙනම my-feature ශාඛාවක වැඩ කරන විට, ඔබට වෙනත් ශාඛාවකින් ආරම්භ කිරීමට අවශ්‍ය වූ විට මෙම විශේෂාංගය භාවිතා කළ හැක, උදාහරණයක් ලෙස, my-feature ශාඛාව පරීක්ෂා කළ ප්‍රධාන ශාඛාවේ එම ස්ථානයේම සිට. මීට පෙර, මෙයට වෙනස් කිරීමේ ලොගය අතින් පරීක්ෂා කිරීම අවශ්‍ය වූ අතර, ඔබට විශාල වෙනස්කම් ඉතිහාසයක් තිබේ නම් එය අපහසු විය, පසුව ප්‍රධාන සහ මගේ-විශේෂාංග ශාඛා අතර ඒකාබද්ධ කිරීමේ පදනමේ හැෂ් ගණනය කිරීමට “git merge-base master my-feature” ධාවනය කරන්න. සහ පොදු මුතුන් මිත්තන්ට සාපේක්ෂව නව ශාඛාවක් නිර්මාණය කිරීම " git ශාඛා my-අනෙකුත් විශේෂාංග හැෂ්." Git 2.22 හි, ඔබට වෙනත් ශාඛා දෙකක ඒකාබද්ධ පදනමට සාපේක්ෂව ශාඛාවක් සෑදීමට "git branch my-other-feature A...B" යන සින්ටැක්ස් භාවිතා කළ හැක;

  • පිටවීමේ මෙහෙයුමේදී ලබාගත් ශාඛාවේ නම පෙන්වීමට "git branch --show-current" විකල්පය එකතු කරන ලදී;
  • "git checkout -no-overlay - dir" විකල්පය එකතු කරන ලදී, එය පිරික්සුම් මෙහෙයුමක් සිදු කරන විට, dir නාමාවලියෙහි අන්තර්ගතය ප්‍රධාන ශාඛාවේ තත්වයට සම්පූර්ණයෙන්ම අනුරූප වන පෝරමයකට ගෙන ඒමට ඉඩ සලසයි. උදාහරණයක් ලෙස, ප්‍රධාන ශාඛාවේ නොමැති dir නාමාවලියෙහි දේශීය පිටපතෙහි ගොනුවක් තිබේ නම්, පෙරනිමියෙන් “git Checkout master - dir” ක්‍රියාත්මක කිරීමේදී එය ඉතිරි වනු ඇත, සහ “--no-overlay නම් ” විකල්පය සඳහන් කර ඇත, එය මකා දැමෙනු ඇත;
  • "git diff" විධානය විග්‍රහ කිරීමේ විකල්ප සඳහා විශ්ව API භාවිතා කරයි, එමඟින් විකල්ප හැසිරවීම අනෙකුත් git උපයෝගිතා සමඟ ඒකාබද්ධ කිරීමට හැකි වේ. උදාහරණයක් ලෙස, "git diff" හි, සියලුම විකල්ප වලට දැන් ඒවායේ ප්‍රතිවිරෝධක ඇත ("--function-context" සහ "--no-function-context");
  • “ගිට් ලොග්” ප්‍රතිදානයේ (“ට්‍රේලරය” - අත්සන් කරන ලද සහ සම කර්තෘ වැනි අමතර තොරතුරු කොඩි) කැපවීම්වලට අමුණා ඇති දිගු ටැග් පෙරීමේ හැකියාව එක් කරන ලදී. යතුර සහ අගය යන දෙකින්ම ලේබල් පෙරීමට හැකිය, උදාහරණයක් ලෙස:
    "git log --pretty="%(trailers:key=Reviewed-by,valueonly)";

  • වඩාත් නම්‍යශීලී සහ ව්‍යුහගත නිමැවුම් ආකෘතියක් ලබා දෙමින් නව ලුහුබැඳීමේ එන්ජිමක්, Trace2 එකතු කර ඇත. වඩාත් සවිස්තරාත්මක විශ්ලේෂණය සහ නිදොස්කරණය සඳහා ක්‍රියාත්මක කරන ලද මෙහෙයුම් සහ කාර්ය සාධන දත්ත පිළිබඳ ටෙලිමෙට්‍රි එකතු කිරීමට Trace2 ඔබට ඉඩ සලසයි (හැසිරුම්කරු පරිශීලකයා විසින් පවරනු ලැබේ, කිසිදු දත්තයක් බාහිරව යවනු නොලැබේ);
  • "git bisect" වාර්තාව වඩාත් කියවිය හැකි බවට පත් කර ඇත, එහි ගැටළුකාරී කැපවීම් දැන් වඩාත් පැහැදිලිව උද්දීපනය කර ඇති අතර එක් එක් ගොනුව සඳහා වන වෙනස්කම් පිළිබඳ සාරාංශ සංඛ්‍යාලේඛන පෙන්වනු ලැබේ (වෙනස් කළ පේළි ගණනේ මට්ටමින්);
  • නාමාවලිය නැවත නම් කිරීම නිර්ණය කිරීම සඳහා වූ හූරිස්ටික්ස් නැවත නම් කිරීමේ ලේබල්වල ව්‍යාජ ස්ථාපනය ඉවත් කිරීම සඳහා නැවත සකස් කර ඇත. සැක සහිත විට, එවැනි නාමාවලි දැන් ගැටුම්කාරී ලෙස සලකුණු කර ඇත;
  • ඔබ වෙනත් ටැගයක ටැගයක් ස්ථාපනය කිරීමට උත්සාහ කරන විට අනතුරු ඇඟවීමක් දර්ශනය වේ, එය සාමාන්‍යයෙන් වැරදීමකින් සිදු කරනු ලබන අතර එය වැරදි කැපවීම මත ටැගය සැකසීමට හේතු විය හැක (උදාහරණයක් ලෙස, “git tag -f -m “යාවත්කාලීන පණිවිඩය” වැනි ඉදිකිරීමක් my-tag1 my- tag2″ පැරණි ටැගය මත ටැගයක් නිර්මාණය වීමට හේතු වනු ඇත, නමුත් සංවර්ධකයා පැරණි ටැගය මගින් පෙන්වා දී ඇති කැපවීම මත නව ටැගය ස්ථාපනය කිරීමට බලාපොරොත්තු විය;
  • බිට්මැප් නිධි සඳහා උත්පාදනය සක්‍රීය කර ඇත (තැටි මත පදනම් වූ "ළඟාවීමේ බිට්මැප්" ව්‍යුහය), එක් එක් කැපවීම සඳහා පවතින වස්තු කට්ටල පිළිබඳ දත්ත ගබඩා කරන අතර මූලික වස්තුවක් තිබීම ඉක්මනින් තීරණය කිරීමට ඔබට ඉඩ සලසයි. මෙම ව්‍යුහය දත්ත ලබාගැනීමේ මෙහෙයුම්වල (git fetch) ක්‍රියාත්මක කිරීමේ කාලය සැලකිය යුතු ලෙස අඩු කරයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න