Подтвердить что ты не робот

Как определить, для какой ветки был предназначен github?

В github, когда я просматриваю коммит, он показывает мне сообщение фиксации и изменения вместе с комментариями внизу. Однако, это не говорит мне, в какой ветке была зафиксирована фиксация. Даже если я просматриваю код, он просматривает код для определенного "дерева" (предположительно, состояния кода при совершении фиксации), а не для конкретной ветки.

Я знаю, что фиксации в git не связаны с веткой, но, безусловно, они всегда будут первыми переданы в конкретную ветвь? Разве это не фиксация, связанная с этой веткой, и могу ли я посмотреть, какая ветка она каким-то образом?

4b9b3361

Ответ 1

ОК, ответ на этот вопрос, по сути, есть: нет окончательного способа сказать. Фактически теги Mercurial фиксируются с именем ветки, в которую они были проверены, но git просто нет; по-видимому, не считается важным, что такое название ветки. Это было дизайнерское решение, и похоже, что он не изменится.

Ответ 2

Если вы знаете номер фиксации, вы можете просто сделать это

git branch --contains <commit>

Это должно дать вам название ветки, в которой было сделано коммитирование.

UPDATE: На GitHub специально вы можете видеть ветку, в которую входит данный коммит. Сообщение в блоге "Филиалы и метки тегов для Commit Pages":

Если коммит не включен в ветвь по умолчанию, индикатор отобразит ветки, содержащие коммит. Если фиксация является частью запроса на несанкционированный доступ, будет показана ссылка.

enter image description here

Ответ 3

От git help branch:

С помощью --contains отображаются только ветки, которые содержат именованное коммит (другими словами, ветки, вершина которых заканчивается, являются потомками именованного коммита).

С включенным соединением будут перечислены только ветки, объединенные в именованный фиксатор (т.е. ветки, чьи концы достигают достижимости от именованного коммита).

С -no-merged будут перечислены только те ветки, которые не объединены в named commit. Если аргумент отсутствует, по умолчанию используется HEAD (т.е. Кончик текущей ветки).

Ответ 4

Если это довольно недавняя фиксация, вы можете перейти к вашему сетевому графику (например, https://github.com/BenHocking/ShortCircuitGA/network) и навести курсор на каждый node на ветке, пока не найдете требуемую фиксацию. Это неэффективно, но это единственный способ, которым я знаю, как это сделать непосредственно из GitHub. (Если у вас есть SourceTree, GitX или другие визуальные клиенты Git, могут быть другие альтернативы, а также альтернативы командной строки.)

Ответ 5

Начните отправлять запрос на перенос для фиксации. Вы увидите ветвь источника по умолчанию на стороне "от".

Ответ 6

Этот ответ не поможет для предыдущих проверок, но я использую следующий комманд commit-msg script, чтобы добавить текущую ветвь к каждому сообщению фиксации.

#!/bin/sh
#
export BRANCH=`git status | head -1 | cut -c13-`
echo -n "($BRANCH) - " > .git/tmp-msg
cat $1 >> .git/tmp-msg
mv .git/tmp-msg $1

exit 0