දී ඇති බැඳීමක් අඩංගු ශාඛා ලැයිස්තුගත කරන්නේ කෙසේද?


1109

දී ඇති බැඳීමක් අඩංගු වන්නේ කුමන ශාඛා දැයි සොයා ගැනීමට මට git විමසන්නේ කෙසේද? gitkසාමාන්‍යයෙන් ශාඛා ලැයිස්තුගත කරනු ඇත, වැඩි ගණනක් නොමැති නම්, එය “බොහෝ (38)” හෝ ඒ හා සමාන දෙයක් පවසයි. මට සම්පූර්ණ ලැයිස්තුව දැන ගැනීමට අවශ්‍යය, නැතහොත් අවම වශයෙන් සමහර ශාඛා වල බැඳීම් තිබේද යන්න.



අදහස් දැක්වීමකට සමාන බැඳීමක්
UpAndAdam

Answers:


1495

සිට GIT-ශාඛා අත්පොත පිටුව :

 git branch --contains <commit>

නිශ්චිත බැඳීම අඩංගු ශාඛා පමණක් ලැයිස්තුගත කරන්න (නිශ්චිතව දක්වා නොමැති නම් HEAD). ගම්‍ය --listවේ.


 git branch -r --contains <commit>

දුරස්ථ ෙසොයා ගැනීෙම් ශාඛා ද ලැයිස්තුගත කර ඇත ( පරිශීලක 3941992 හි පිළිතුරෙහි පහත සඳහන් පරිදි) එය “දුරස්ථ ශාඛාවකට සෘජු සම්බන්ධතාවයක් ඇති දේශීය ශාඛා” වේ.


මෙම git සූදානම් ලිපියද බලන්න.

මෙම --containsඇතැම් සිදු වූ ඔබේ ශාඛා බවට මෙතෙක් කර ඇති නම්, ටැගය තෙරුම් ඇත. සමහර විට ඔබ ඉල්ලුම් කළ පැච් එකකින් SHA එකක් ලබාගෙන ඇත, නැතහොත් මතක භාවිතය 75% කින් අඩු කරන ඔබේ ප්‍රියතම විවෘත මූලාශ්‍ර ව්‍යාපෘතිය සඳහා කැපවී ඇත්දැයි පරීක්ෂා කිරීමට ඔබට අවශ්‍යය.

$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <nick@quaran.to>
Date:   Wed Apr 1 20:38:59 2009 -0400

    Green all around, finally.

$ git branch --contains d590f2
  tests
* master

සටහන: කැපවීම දුරස්ථ ලුහුබැඳීමේ ශාඛාවක තිබේ නම් , -aවිකල්පය එක් කරන්න .
(ලෙස MichielB අදහස් පහත )

git branch -a --contains <commit>

මැට්‍රික්ස් ෆ්‍රොග් අදහස් දක්වන්නේ එය පෙන්වන්නේ එම නිශ්චිත බැඳීම අඩංගු වන්නේ කුමන ශාඛාවලට පමණක් බවයි.
“සමාන” බැඳීමක් (එනම් චෙරි තෝරාගත් ශාඛා කවර ශාඛාද) අඩංගු වන්නේ කුමන ශාඛා දැයි ඔබට දැන ගැනීමට අවශ්‍ය නම් git cherry:

නිසා git cherry එම changeset වෙනුවට සිදු id (SHA1) සංසන්දනය , ඔබ භාවිතා කළ හැකිය git cherryඔබ එක්කෝ කොබැඳි නැත්නම් ස්ථානීකව නොපවතියි අයදුම් කර ඇති කළ සිදු වුණොත් සොයා ගැනීමට <upstream>වෙනස් සිදු id යටතේ.
නිදසුනක් ලෙස, ඔබ <upstream>කෙලින්ම කොමිස් තල්ලු කිරීම හෝ ඇද ගැනීම වෙනුවට ඊමේල් හරහා පැච් පෝෂණය කරන්නේ නම් මෙය සිදු වේ.

           __*__*__*__*__> <upstream>
          /
fork-point
          \__+__+__-__+__+__-__+__> <head>

(මෙන්න, ' -' ලෙස සලකුණු කර ඇති කොමිස් සමඟ git cherryනොපෙන්වයි, එයින් අදහස් වන්නේ ඒවා දැනටමත් පවතින <upstream>බවයි.)


3
testsසහ master- masterයනු වර්තමාන ශාඛාවයි, එබැවින් තරු ලකුණු වේ.
නිල් පැහැති

54
මෙයින් පෙනී යන්නේ එම නිශ්චිත බැඳීම අඩංගු වන්නේ කුමන ශාඛා වලද යන්නයි. “සමාන” git cherryබැඳීමක් (එනම් එම ශාඛා චෙරි තෝරාගත් ශාඛා) කුමන ශාඛා වලදැයි දැන ගැනීමට ඔබට අවශ්‍ය නම්: ඔබ දේශීයව කළ කැපවීමක් වෙනත් කැපවීමේ හැඳුනුම්පතක් යටතේ <upstream> යෙදී තිබේ නම්, උදාහරණයක් ලෙස, ඔබ කෙලින්ම කොමිස් තල්ලු කිරීම හෝ ඇද ගැනීම වෙනුවට ඊමේල් හරහා පැච් <upstream> පෝෂණය කරන්නේ නම් මෙය සිදු වේ. kernel.org/pub/software/scm/git/docs/git-cherry.html
MatrixFrog

62
-aදුරස්ථ ශාඛා පරීක්ෂා කිරීමට පරාමිතියක් එක් කරන්න .
රාමන්

28
ඔබටත් කළ හැකිය git tag --contains <commit>. බැඳීමක් අඩංගු සියලුම ටැග් සඳහා සෙවීම බලන්න ? .
මාෂල්

5
සඳහා git cherryකොටසක් @UpAndAdam ප්රශ්නය මෙතන ඉල්ලා: stackoverflow.com/questions/16304574/... , අහෝ, ප්රශ්නය (තවමත්) පිළිතුරු ලබා දී නැත.
adeelx

22

ඔබට ධාවනය කළ හැකිය:

git log <SHA1>..HEAD --ancestry-path --merges

නිමැවුමේ අවසාන කැපවීම පිළිබඳ අදහස් දැක්වීමෙන් ඔබට මුල් ශාඛා නාමය සොයාගත හැකිය

උදාහරණයක්:

       c---e---g--- feature
      /         \
-a---b---d---f---h---j--- master

git log e..master --ancestry-path --merges

commit h
Merge: g f
Author: Eugen Konkov <>
Date:   Sat Oct 1 00:54:18 2016 +0300

    Merge branch 'feature' into master

6
හොඳයි! මම git log <SHA1>..master --ancestry-path --merges --oneline | tail -n1මෙය එක පේළියකින් ලබා ගත්තා
ජේම්ස් ඊ.ජේ

1
ඔබ පිරිසිදු git විධානයක් භාවිතා කිරීමට කැමති නම්, ඔබට මෙය භාවිතා කළ හැකිය:git log <SHA1>..master --ancestry-path --merges --oneline -1
Bartosz

සටහන: ඔබේ කැපවීම ෂා යනු මාස්ටර් / ෆූ ශාඛාවේ (HEAD) නවතම කැපවීම වන විට ... ඔබට A..Bකැපවීමේ පරාසයක් කළ නොහැක, එවැනි පරාසයක් භාවිතා නොකරන්න :: git log HEAD --oneline -1> 82c12a9 (HEAD, origin/remote-branch-name, origin/master, origin/dev, origin/HEAD, master, dev) commit message.
ඩෙවින් ජී රෝඩ්

මෙම git repo උප මොඩියුලයක් නම් සහ ඔබ වෙන් කළ HEAD ගැටළුව විසඳීමට උත්සාහ කරන්නේ නම් ... එවිට ඔබට කැමති ශාඛාවක් පිළිබඳ අසීරු ප්‍රශ්නයක් තිබේ ... මගේ පෙර උදාහරණයේ දී ඔබට පහසුවෙන් කිව හැකිය masterඑය මෙම ලැයිස්තුවේ තිබේ නම් එය සැමවිටම වඩාත් සුදුසු බව . එතැන් සිට එය පැහැදිලි නැත. .Gitmodules ගොනුවෙන් ඔබට git ශාඛාව උත්සාහ කර කියවිය හැකිය : git config -f .gitmodules submodule.src/foo/submodule.branch. මෙය දිගුකාලීන දෙබලක / pr විය හැකිය. ඔබට සීඩී නැවත repo root කර ධාවනය කළ git config submodule.src/foo/submodule.branchහැකිය. ඔබට සුපිරි ව්‍යාපෘති වත්මන් git ශාඛාව භාවිතා කළ හැකිය.
ඩෙවින් ජී රෝඩ්

කුඩා git config submodule.src/foo/submodule.branchපැත්තක් ලෙස: repo-local .gitconfig ගොනුවක් ඇතුළුව ඕනෑම ආකාරයක git configs වලට බලපෑම් කළ හැකිය. (ධාවනය අවශ්‍යයි git config --local include.path ./path/to/your/.gitconfig)
ඩෙවින් ජී රෝඩ්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.