Как вы комментируете ветку?

Есть ли способ аннотировать ветку? Было бы неплохо сделать что-то вроде:

$ git notes add branch-name -m 'This branch is for whatever'

но это, конечно, не очень полезно, поскольку примечание относится к текущему заголовку ветки, а не самой ветке.

Легким обходным решением является сброс имени README.branch в репозитории, но это кажется неуклюжим. Чуть более элегантным является наличие осиротевшей ветки, содержащей только README.branch-names. Я ищу способ записи того, что цель ветки не просто помещает ее в сообщение фиксации для "первой" фиксации ветки. Я ставил "первый" в кавычки, потому что не всегда ясно, что подразумевается под этим, что является причиной того, что неудобно помещать дискуссию в сообщение фиксации. Часто бывает сложно найти фиксацию, в которой записано такое сообщение.

Ответ 1

Это был бы совершенно иной подход, чем git note но вы могли бы использовать git config для этой функции.

$ git config branch.<branch-name>.note 'This is what this branch is for'

Это может быть псевдоним, чтобы сделать интерфейс проще (я думаю, это можно улучшить, но это то, что я использую):

$ git config alias.branch-note '!git config branch.$(git symbolic-ref --short HEAD).note $( if [ $# -gt 0 ]; then $1; fi)'

Это позволяет вам установить примечание для ветки следующим образом (убедитесь, что вы указали в примечании):

$ git branch-note 'This is what this branch is for'

Затем вы можете получить текущую ветку заметки следующим образом:

$ git branch-note
This is what this branch is for

В качестве дополнительного преимущества, записи конфигурации, определенные в branch.<branch-name> имен branch.<branch-name> будет следовать за переименованием ветки и будет автоматически очищено, если вы удалите ветку позже. Эти лишние записи конфигурации будут сохраняться только до тех пор, пока существует ветвь, и в этот момент они будут автоматически удалены.

Недостатком этого подхода является то, что вы можете хранить только одну "заметку" для каждой ветки. Последующие вызовы ветвления с аргументом перезапишут предыдущую ветвь. Вы также не получаете преимущества от хранения сообщения в отслеживаемом git-объекте, но, возможно, этого будет достаточно для ваших целей.

Ответ 2

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

git branch B A
git checkout B
git commit --allow-empty -m "Created branch 'B' from 'A'"

У этого также есть замечательный побочный эффект создания истории показанный в "git log -graph" гораздо яснее - а именно он показывает четко обозначенную вилку в дереве в то время, когда я создал ветку, вместо того, что я обычно получаю, что является непонятной немеченой вилкой в ​​более позднее время когда я совершу свое первое совершение, находясь в B - такая вещь держит меня в постоянном тумане.

Ответ 3

Используя решение Брайана, я создал git-note. Вы можете использовать его как:

$ git note "Some note" # set note for current branch
$ git note -b branch # see note for branch
$ git note -l # list all the branches with theirs' notes

Ответ 4

Правильный ответ на это - теперь описания ветвей, функция, которая была добавлена ​​в git после того, как этот вопрос изначально был задан.

Вот два вопроса, которые вызывают этот ответ: Отраслевые описания в git Могу ли я добавить сообщение/примечание/комментарий при создании нового ветки в Git?

Ответ 5

Вы можете просто создать "отслеживающую ошибку" в своем трекер-проблеме, где вы подробно описываете большую новую функцию, с макетами и диаграммами UML и все, а затем назовите ветвь bug1234.

Ответ 6

Нет. Заметки привязаны к определенным идентификаторам фиксации.