Как определить, для какой ветки был предназначен github?
В github, когда я просматриваю коммит, он показывает мне сообщение фиксации и изменения вместе с комментариями внизу. Однако, это не говорит мне, в какой ветке была зафиксирована фиксация. Даже если я просматриваю код, он просматривает код для определенного "дерева" (предположительно, состояния кода при совершении фиксации), а не для конкретной ветки.
Я знаю, что фиксации в git не связаны с веткой, но, безусловно, они всегда будут первыми переданы в конкретную ветвь? Разве это не фиксация, связанная с этой веткой, и могу ли я посмотреть, какая ветка она каким-то образом?
Ответы
Ответ 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