Как составить список веток, содержащих данный коммит?

Я полагаю, вы могли бы (используя базовые манипуляции с строкой) генерировать строку запроса в PreparedStatement, чтобы количество ? соответствовало количеству элементов в вашем списке.

Конечно, если вы делаете это, вы всего лишь шаг от создания гигантского прикованного OR в своем запросе, но без правильного количества ? в строке запроса, я не вижу, как вы можете обойти это.

994
задан ThiefMaster 20 December 2012 в 14:49
поделиться

1 ответ

На странице руководства git-branch :

 git branch --contains <commit>

Список только ветвей, которые содержат указанную фиксацию (HEAD, если не указан). Подразумевается - список .


 git branch -r --contains <commit>

Перечисляет ветки удаленного отслеживания (как указано в user3941992 ответ ниже), которые являются «локальными ветвями, которые имеют прямое отношение к удаленному ветка ".


См. также эту статью git ready .

Тег - 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>

MatrixFrog комментирует, что он только показывает, какие ветки содержат этот точный коммит.
Если вы хотите узнать, какие ветки содержат «эквивалентную» фиксацию (то есть в каких ветвях выбрана эта фиксация), используйте git cherry :

Потому что git cherry скорее сравнивает набор изменений чем идентификатор фиксации (sha1) , вы можете использовать git cherry , чтобы узнать, применялась ли локальная фиксация под другим идентификатором фиксации.
Например, это произойдет, если вы загружаете патчи по электронной почте, а не отправляете или извлекаете коммиты напрямую.

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

(Здесь коммиты с пометкой ' - ' не будут не отображаются с git cherry , то есть они уже присутствуют в .)

1411
ответ дан 19 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: