it-roy-ru.com

Удалить измененный файл из запроса извлечения

В данный момент у меня есть 3 измененных файла (без новых файлов) в запросе на удаление.

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

Я попробовал пару вещей (проверяя оригинальную версию файла и т.д.), Но он все равно отображается как измененный файл в PR.

Есть ли этому решение?

52
jlee

Переключитесь на ветку, из которой вы создали запрос на извлечение:

$ git checkout pull-request-branch

Перезаписать измененный файл (ы) файлом из другой ветки, давайте рассмотрим его master:

git checkout Origin/master -- src/main/Java/HelloWorld.Java

Зафиксируйте и отправьте его на пульт:

git commit -m "Removed a modified file from pull request"
git Push Origin pull-request-branch
122
Arpit

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

Вот как я рекомендую вам сделать это:

  1. Закройте PR, чтобы тот, кто просматривает его, не включал его, пока вы не внесете свои изменения.
  2. Выполните программный сброс до фиксации перед нежелательным изменением (если это последний коммит, который вы можете использовать git reset --soft HEAD^, или если это другой коммит, вы можете заменить 'HEAD ^' на идентификатор фиксации)
  3. Отменить (или отменить) любые изменения в файле, который вы не намеревались обновить
  4. Сделайте новый коммит git commit -a -c ORIG_HEAD
  5. Force Push в вашу ветку
  6. Повторно открыть запрос на извлечение

Теперь, когда ваша ветвь обновлена, в запрос на извлечение будут включены ваши изменения.

Вот ссылка на документацию Gits, где у них есть довольно хороший пример под Отменить коммит и повторить .

7
Keif Kraken

Пул-запрос - это всего лишь запрос на слияние одной ветви в другую.

Ваш запрос на получение ничего не "содержит", это просто маркер, говорящий "пожалуйста, объедините эту ветку с этой".

Набор изменений, которые PR показывает в веб-интерфейсе, - это просто изменения между целевой ветвью и вашей веткой функций. Чтобы изменить ваш запрос на извлечение, вы должны изменить ветвь объекта, возможно, с принудительной передачей в ветвь объекта.

В вашем случае вы, вероятно, захотите изменить свой коммит. Не уверен в вашей конкретной ситуации, но некоторая комбинация интерактивной перебазировки и add -p должна вас разобраться.

0
Chris Kitching