Закрытие нескольких проблем в Github с помощью сообщения о фиксации

Я знаю, что вы можете закрыть проблемы, поместив closes #1 или fixes #1 в сообщение фиксации. Как лучше всего закрыть несколько проблем в одном сообщении о фиксации?

Кроме того, похоже, что использование fixes вместо closes не создает ссылку из сообщения фиксации на проблему, но закрывает проблему. Что с этим?


person Rayne    schedule 23.08.2010    source источник
comment
См. stackoverflow.com/questions/1687262   -  person Timo Tijhof    schedule 24.01.2013


Ответы (5)


Closes #1, closes #2, closes #3; rest of commit message.

Предложения closes могут находиться в любом месте сообщения, а fixes является допустимым синонимом:

This fixes a memory leak in foo() that closes #4,
also fixes #5 which is a duplicate.

Следующие раньше работали, но в настоящее время только ссылки выпускают №2 и №3.

Closes #1, #2, #3

person Jakob Borg    schedule 23.08.2010
comment
Похоже, это не работает для меня, он закрывает только первый элемент в списке, а не остальные. Изменился ли синтаксис после этого поста? Я погуглил, но, похоже, здесь не так много помощи. - person Mark Bell; 31.01.2011
comment
Согласованный. Исправления №1, №2 работают для ссылки на оба ... но закрывают только №1. - person waldo; 01.05.2011
comment
@waldo Я думаю, что это сработало, когда я это написал - а теперь как насчет Closes #1, closes #2, closes #3? Многословно и избыточно, да, но, может быть, это сработает? - person Jakob Borg; 01.05.2011
comment
Ага, Исправления # 1 - Исправления # 2 - фактическое сообщение фиксации. работает и имеет некоторый смысл (если подробный) - т.е. я четко закрываю и ссылаюсь (не закрывая) на несколько разных проблем из одного сообщения о фиксации. - person waldo; 20.05.2011
comment
Вам не нужно помещать закрывающую / исправленную часть сообщения в какое-либо конкретное место в сообщении фиксации. Например, реорганизованный класс foo, исправления №3, новая панель функций, закрытие №8, не нарушать обратную совместимость, должны закрыть №3 и №8. По состоянию на март 2012 г. этот выпуск "только для справки" все еще сохраняется. - person Casey Kuball; 09.03.2012
comment
Есть идеи, почему они изменили поведение Closes #1, #2, #3? Мне кажется смешным писать 10 closes плюс номера выпусков, которые должны быть закрыты, вместо одного закрытия и всех чисел после этого. : - / - person rbaleksandar; 07.10.2015
comment
Небольшое примечание: у меня проблемы с этим в GitLab, но не в GitHub, поэтому это также зависит от того, поддерживает ли это API платформы VC на основе git или нет. - person rbaleksandar; 28.10.2015
comment
@Darthfelt Это немного не так, потому что они должны быть вместе. Например, This closes issue #3 будет ссылаться только на #3. Не имеет значения, где находится closes #3 или fixes #3 и т. Д. В сообщении фиксации, но оно должно быть совместным. - person Hobbyist; 02.03.2017
comment
Я просто использовал Исправления №1 и Исправления №2, обе проблемы НЕ закрывались. - person Cecile; 30.07.2017

В ответе и комментарии к этому ответу упоминается следующий формат:

Закрывает # 1, закрывает # 2, закрывает # 3; Фактическое сообщение фиксации

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

Возможно, это просто вопрос моих личных предпочтений, и в конечном итоге люди, используемые для сжатия сообщений коммитов, которые загромождают сводки истории Git, в конечном итоге будут избиты до основания, но я бы предпочел видеть сообщения коммитов в формате:

Краткое описание внесенных изменений.

Исправлены следующие ошибки:
* Модифицированный загрузчик ошибок, исправляет # 1
* Возвращен нестандартный указатель, исправляет # 2
* Применена новая графика к элементам графического интерфейса, закрывается # 3

Он попросил найти лучший способ закрыть несколько проблем.

Также обратите внимание, что если вы отправите фиксацию с сообщением в любую другую ветку, кроме текущей ветки по умолчанию вашего репозитория, проблемы будут только упоминаться. Отправка фиксации в основную ветку закроет проблемы. См .: Ссылка на номер проблемы GitHub не работает?

person JNissi    schedule 26.06.2012
comment
Просто попробовал по-своему. Честно говоря, мне это очень нравится! - person Billy Coover; 25.10.2012

Обратите внимание, что, начиная с января 2013 г., «Закрытие проблем с помощью фиксации Сообщения »изменилось:

Теперь, когда вы вводите «Fixes #33» в сообщении о фиксации, проблема 33 будет закрыта только после того, как фиксация будет объединена с ветвью по умолчанию (обычно master).

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

Вы можете использовать любое из этих ключевых слов, чтобы закрыть проблему через сообщение фиксации:

close, closes, closed, fixes, fixed

Как видно из вопроса «Закрытие проблемы GitHub в другой ветке», это сначала вызывает некоторую путаницу.

person VonC    schedule 05.04.2013

Здесь из Github собственная документация: Связывание запроса на вытягивание с проблемой

Resolves #10, resolves #123, resolves octo-org/octo-repo#100

Скриншот из документации GitHub

person No Name Pro    schedule 15.08.2020

Закрытие проблем с помощью ключевых слов - это документ от GitHub, в котором описывается, как чтобы закрыть проблемы, теги и как закрыть несколько проблем.

Чтобы ответить на ваши вопросы, ответ от GitHub:

Закрытие нескольких проблем

Чтобы закрыть несколько проблем, перед каждой ссылкой на проблему используйте одно из указанных выше ключевых слов. Вы должны использовать ключевое слово перед каждой проблемой, на которую вы ссылаетесь, чтобы ключевое слово работало.

Например, это закрывает # 34, закрывает # 23 и закрывает example_user / example_repo # 42 закрывает проблемы # 34 и # 23 в том же репозитории, и выпуск # 42 в репозитории example_user / example_repo.

person Vlad Bezden    schedule 14.10.2019