В основном "восходящий" репозиторий GitHub обеспечивает прямой доступ к ветвям PR форков (только для чтения), так что вы можете получить данный PR и протестировать соответствующий код после указания соответствующей ссылки, pull/ID/head
.
С этой целью я часто использую следующий псевдоним (который может использоваться как для начальной выборки , затем последующих выборок , если PR был обновлено - тем самым перезаписывая локальную ветвь pr/ID
):
$ git pr
Usage: git pr <id> [<remote>] # assuming <remote>[=origin] is on GitHub
$ git pr 101 # fetch PR #101 from origin -> branch pr/101
$ git pr 101 upstream # fetch PR #101 from upstream -> branch pr/101
Вот однострочное определение, затем расширенная форма:
$ git config --global alias.pr '!f() { if [ $# -lt 1 ]; then echo "Usage: git pr <id> [<remote>] # assuming <remote>[=origin] is on GitHub"; else git checkout -q "$(git rev-parse --verify HEAD)" && git fetch -fv "${2:-origin}" pull/"$1"/head:pr/"$1" && git checkout pr/"$1"; fi; }; f'
# git config --global alias.pr '!f() { if [ $# -lt 1 ]; then
echo "Usage: git pr <id> [<remote>] # assuming <remote>[=origin] is on GitHub";
else git checkout -q "$(git rev-parse --verify HEAD)" &&
git fetch -fv "${2:-origin}" pull/"$1"/head:pr/"$1" &&
git checkout pr/"$1";
fi; }; f'
Обратите внимание, однако, что вы не можете напрямую pu sh в эти специальные ветки.
Если вы когда-нибудь захотите напрямую изменить PR (commit + force-pu sh) в качестве сопровождающего, вам следует добавить вилку как другую remote
, как предложено @ yes-siz (при условии автор PR разрешил такой доступ при открытии своего PR ).