Я работаю над проектом в github. Пользователь создал запрос на извлечение. Я хотел бы отказаться от этого запроса на вытягивание. Как мне это сделать? Я не вижу в документации по git ничего, что сразу бросалось бы мне в глаза, но я вполне уверен, что это возможно...
@NimeshNeema, как бы я это сделал? Это пиар для апстрима.
Возможный дубликат Как быстро получить запрос на включение локально
PR основаны на филиалах. Разветвление репозитория создает новую копию репозитория в вашей учетной записи, включая все отправленные ветки. Запросы на вытягивание не копируются как часть процесса разветвления.
Перейдите к запросу на вытягивание и найдите ветку, на которой он основан:
Затем сделайте форк репозитория. Вы найдете ветку в своем новом репозитории и сможете воссоздать PR или создать другую ветку оттуда.
Я не совсем понимаю, что вы имеете ввиду. У меня уже есть исходное репо. Как я могу ввести PR в свою вилку и ответвления от нее?
Тогда это довольно просто. Вы просто хотите найти ветку от исходного PR, проверить ее и сделать из нее ветку.
I have the original repo forked already. How would I bring the PR into my fork and branch off of it?
Если вы еще этого не сделали, клонируйте свою вилку, чтобы у вас была локальная копия вашей вилки на вашем компьютере.
Добавьте репозиторий, из которого PR приходит как удаленный к вашему клону:
git remote add the-pr-repo [email protected]:the-pr-user/the-pr-fork.git
Оформить ветку PR в локальном репозитории:
git fetch the-pr-repo
git checkout the-pr-branch
Теперь у вас есть копия ветки PR в вашем локальном репозитории, и вы можете создавать, тестировать и делать что угодно.
This is a PR for upstream.
PR по-прежнему просто указывает на ветку. «Запрос на извлечение» — это буквально запрос на перенос коммитов из данной ветки в какую-то другую ветку. Допустим, PR сделан из репозитория basil
и указывает ветку с именем basils-changes
, а PR просит добавить коммиты из basils-changes
в ветвь master
репозитория upstream
. Я могу легко получить те же самые изменения, сначала убедившись, что у меня есть локальная ветка, в которой установлена последняя версия upstream/master
, а затем перетащите basil/basils-changes
в мою локальную ветку. Это даст мне именно то, что будет у upstream/master
, если PR будет объединен, поэтому я могу протестировать изменения локально, чтобы решить, хочу ли я объединить PR с upstream/master
.
как я могу выйти из ветки PR после ее добавления в мой форк?
Вы не «ответвляете от PR», вы просто втягиваете ветвь PR в свою вилку, используя git checkout
. Если вы хотите создать новую ветку оттуда, вы можете сделать это снова с помощью git checkout -b your_new_branch_name
. Или вы можете просто внести изменения в свою копию ветки PR. PR ничего не меняет в обычном использовании git — это просто указатель на конкретную ветку. Если владелец ветки добавит фиксацию в свою ветку и подтолкнет ее к своей вилке, PR покажет это, потому что, опять же, PR просто указывает на ветку.
есть ли способ объединить его с веткой, над которой я работаю?
Это просто ветка, поэтому, конечно, вы можете перетащить ее в другую ветку. Или вы можете перебазировать свою ветку поверх ветки PR. Выполнение последнего часто лучше, если вы планируете объединить как PR, так и свою собственную ветку в другую ветку (например, master), потому что это сохраняет отдельные коммиты PR и помогает избежать конфликтов слияния.
понимание того, что происходит, прекрасно. я просто хочу знать команды, чтобы сделать это. боже, я ненавижу мерзавца
Термины, которые я использовал выше, сопоставляются непосредственно с именами команд git. Если вы хотите притянуть другую ветку к своей, это git pull <the_other_repo> <the_other_branch>
. Если вы хотите перебазировать, это git rebase <the_other_repo>/<the_other_branch>
. Если вы не уверены, какие параметры подходят для какой-либо команды, добавьте параметр --help
(например, git pull --help
). Я понимаю ваше разочарование, но вам станет легче, если вы продолжите в том же духе. Сопротивление бесполезно.
Как насчет того, чтобы создать новую ветку, объединить запрос на включение и разветвить его?