2011-12-14 3 views
4

Из того, что я видел взгляд кажется довольно мрачным, но только в том случае, здесь мои требования:.Git: Что филиал коммит возникла из

  1. Определить, какая ветвь данный коммит возникла в
  2. Определите, какие фиксации возникли в данной ветви.

Из того, что я прочитал, оба этих сценария кажутся невозможными, вдвойне, после того, как рассматриваемая ветка была объединена с мастером.

+2

Это, скорее всего, несколько выполнимо в зависимости от * как * ветви были объединены обратно в случае, если происходит слияние фиксации (т.е. слияния были сделаны с '- no-ff'), вы, по крайней мере, должны выполнить слияние. –

+1

Возможный дубликат [Git: поиск какой ветви произошел коммит] (http://stackoverflow.com/questions/2706797/git-finding-what-branch-a-commit-came-from) – Cascabel

+0

Обратите внимание, что очень часто, когда вы задаете этот вопрос, вы на самом деле пытаетесь выполнить что-то еще, и вам действительно не нужно это делать. Сетки Git должны быть легкими и часто преходящими. Рассмотрим, например, 'git log -merges -ancestry-path ..master'. Вероятно, вы заботитесь о фиксации слияния (и, возможно, кто его объединил), и необязательно имя ветки, на которой он был включен, когда он был объединен. – Cascabel

ответ

0

Вы можете попробовать этот скрипт:. https://github.com/SethRobertson/git-what-branch

EXAMPLES 
    # git-what-branch --all 1f9c381fa3e0b9b9042e310c69df87eaf9b46ea4 
    v2.6.12-rc3-450-g1f9c381 used the following minimal temporal path: 
     merged to v2.6.12-rc3-461-g84e48b6 @Tue May 3 18:27:24 2005 
     merged to v2.6.12-rc3-590-gbfd4bda @Thu May 5 08:59:37 2005 
     v2.6.12-rc3-590-gbfd4bda is on v2.6.12-n 
     v2.6.12-rc3-590-gbfd4bda is on v2.6.12-rc4-n 
     [...] 
     v2.6.12-rc3-590-gbfd4bda is on v2.6.36-rc4-n 
     v2.6.12-rc3-590-gbfd4bda is on v2.6.36-rc5-n(aka master) 
Смежные вопросы