Git ශාඛා දෙකක නවතම මුතුන් මිත්තෙකු සොයා ගන්නේ කෙසේද?
Git ශාඛා දෙකක නවතම මුතුන් මිත්තෙකු සොයා ගන්නේ කෙසේද?
Answers:
ඔබ සොයන git merge-base
. භාවිතය:
$ git merge-base branch2 branch3
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
git log master...HEAD
--octopus
ධජය පසු කළ යුතු බව සැලකිල්ලට ගත යුතුය . පැහැදිලිව පෙනෙන නමුත් වැරැද්ද git merge-base branch1 branch2 branch3
ඔබට කැපවීමක් ලබා දෙනු ඇත, නමුත්, ලේඛනයේ සාකච්ඡා කොටසේ විස්තර කර ඇති පරිදි, එය අනිවාර්යයෙන්ම ශාඛා තුනේම පොදු මුතුන් මිත්තෙකු නොවේ .
git diff master...feature
ඔබගේ වර්තමාන (සමහර විට බහු-කැපවීම්) විශේෂාංග ශාඛාවේ සියලුම නව කොමිස් පෙන්වයි.
man git-diff
ලියකියවිලි:
git diff A...B
සමාන වේ:
git diff $(git merge-base A B) B
නමුත් ...
ටයිප් කිරීමට සහ මතක තබා ගැනීමට පහසුය.
ඩේව් සඳහන් කළ පරිදි , විශේෂ නඩුව මඟ HEAD
හැරිය හැක. නිසා:
git diff master...HEAD
සමාන වේ:
git diff master...
වත්මන් ශාඛාව නම් එය ප්රමාණවත් වේ feature
.
අවසාන වශයෙන්, එම නියෝගය වැදගත් බව මතක තබා ගන්න! කිරීමෙන් සක්රිය නොවන git diff feature...master
වෙනස්කම් පෙන්වනු master
ඇත feature
.
තවත් git විධානයන් එම වාක්ය ඛණ්ඩයට සහය දක්වනු ඇතැයි මම ප්රාර්ථනා කරමි, නමුත් මම හිතන්නේ නැහැ ඒවා එසේ කරයි කියා. සමහරුන්ට විවිධ අර්ථකථන පවා ඇත ...
: Git බැඳීම් පරාසයන්හි ද්විත්ව-තිත ".." සහ ත්රිත්ව-තිත "..." අතර ඇති වෙනස්කම් මොනවාද?
git diff master...
වන විශේෂ අවස්ථාවෙහිදීHEAD
git diff origin/branchname...
පෙර පිළිතුරක සඳහන් කළ පරිදි, git merge-base
ක්රියා කරයි:
$ git merge-base myfeature develop
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
නමුත් myfeature
වර්තමාන ශාඛාව පොදු නම්, ඔබට භාවිතා කළ හැකිය --fork-point
:
$ git merge-base --fork-point develop
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2
මෙම තර්කය ක්රියාත්මක වන්නේ ප්රමාණවත් තරම් මෑත කාලීන අනුවාද වල පමණි. අවාසනාවට එය සැමවිටම ක්රියා නොකරයි, කෙසේ වෙතත් එය පැහැදිලි නැත. කරුණාකර මෙම පිළිතුර අවසානයේ සඳහන් කර ඇති සීමාවන් වෙත යොමු වන්න .
සම්පූර්ණ කැපවීමේ තොරතුරු සඳහා, සලකා බලන්න:
$ git log -1 $(git merge-base --fork-point develop)
git version 2.14.1.windows.1
. වර්තමාන ශාඛාවෙන් අත්හැර දමා ඇති බව මා දන්නාgit merge-base --fork-point branch2
ශාඛාවක් සමඟ (තමන්ගේම කොමිස් සහිතව) ධාවනය කිරීමෙන් කිසිදු ප්රති result ලයක් නොලැබෙන අතර , දෙබලක ලක්ෂ්යය නිවැරදිව පෙන්වයි. ගැටලුව කුමක් විය හැකිද? git merge-base branch1 branch2
branch2
කර ධාවනය කරන්න git merge-base --fork-point branch1
.
gitk
ගස මොන වගේද කියා බැලීමට චිත්රක කැපවීමේ නරඹන්නෙකු භාවිතා කරන්න, උදා . සමහර විට ඔබට ඔබේ පිළිතුර ලැබෙනු ඇත.
git merge-base branch1 branch2
. නමුත් අමුතුම දෙය නම් --fork-point
කිසිම දෙයකට කිසිවක් නොලැබීමයි. අපේක්ෂිත පරිදි එය ඔබ වෙනුවෙන් ක්රියාත්මක වන බව ඔබ තහවුරු කර තිබේද?