Найти запрос Pull на Github, где была создана фиксация

Pull Requests отлично подходят для понимания большего мышления вокруг изменения или набора изменений, сделанных для репо. Чтение запросов на загрузку - отличный способ быстро "заманить" проект, поскольку вместо небольших атомных изменений в источнике вы получаете большие группировки логических изменений. Аналогично организации строк в вашем коде в связанных "строфах", чтобы облегчить их чтение.

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

Ответ 1

Вы можете просто перейти в github и ввести SHA в панель поиска, убедитесь, что вы выбрали ссылку "Проблемы" слева.

ОБНОВЛЕНО 13 июля 2017 г.

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


Пример поиска PR, щелкнув ссылку на фиксацию

Если у вас есть команда SHA и ничего больше, и вы не хотите ее копать, просто добавьте /commit/[commit SHA] к URL-репо, и вы увидите страницу фиксации с PR-ссылкой, если она существует. Например, если SHA равен 52797a7a3b087231e4e391e11ea861569205aaf4, а репо https://github.com/glimmerjs/glimmer-vm, перейдите к https://github.com/glimmerjs/glimmer-vm/commit/52797a7a3b087231e4e391e11ea861569205aaf4

Ответ 2

git config --add remote.origin.fetch +refs/pull/*/head:refs/remotes/origin/pull/*
git fetch origin
git describe --all  --contains <COMMIT>

При необходимости измените origin на имя пульта, указывающего на github, на который был отправлен запрос на перенос. Первый команда должна запускаться только один раз для любого данного пульта, а вторая обычно выполняются при получении других обновлений.

Это приведет к тому, что git получит информацию о запросах на тягу вместе с фактическими ветки. Они будут отображаться как ветки удаленного отслеживания, такие как origin/pull/123. Как только это будет сделано, вы можете использовать git describe с --all и --contains опции, чтобы показать первую ветвь, на которую ссылается фиксация.

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

Ответ 3

С 13 октября 2014 года это должно быть простым:

Например:

Вы можете увидеть для файла hakimel/reveal.js/plugin/markdown/markdown.js, мой вклад теперь идет ссылка на PR # 734, в которой она возникла.

PR from contrib

Это происходит от Связывание запросов с объединенным pull от коммитов:

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

commit with PR reference in it!

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

Как всегда, если вы знаете фиксацию SHA, вы можете пропустить страницу фиксации и искать прямой запрос на перенос.

Ответ 4

Поместите хеш фиксации в поле Pull Request filters на GitHub.

введите описание изображения здесь

Ответ 5

У меня была эта же проблема и написал помощник pr_for_sha bash, описанный здесь:

http://joey.aghion.com/find-the-github-pull-request-for-a-commit/

Назовите его как pr_for_sha <COMMIT>, и он откроет соответствующую страницу запроса github pull в браузере.