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

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

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

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

jlee

Ответов: 8

Ответы (8)

Переключитесь на ту ветку, где вы хотите восстановить файл.

Это команда для него.

Просто нужно выбрать пульт и ветку, где ваш файл будет восстановлен до

git checkout / -- .

В моем случае это было

git checkout origin/master -- .github/workflows/ci.yml

Запрос на перенос - это просто запрос на слияние одной ветки с другой.

Ваш запрос на перенос ничего не «содержит», это просто маркер с надписью «пожалуйста, объедините эту ветку с этой».

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

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

Например, вы хотите создать PR из ветки1 для файлов file1, file2 и file3. Теперь вы хотите удалить file3 из PR.

  1. Проверьте свою ветку, из которой был создан PR. git checkout branch1

  2. Проверить историю коммитов git журнал Он предоставит вам следующую информацию

    фиксация <некоторый идентификатор 1> (origin / branch1, branch1) Автор: abc Дата: вторник, 2 ноября, 16:47:03 2021 г. + 0530

    фиксация <некоторый идентификатор 2> (origin / branch1, branch1) Автор: abc1 Дата: 1 ноя, вт, 16:47:03 2021 + 0530

  3. Найдите идентификатор фиксации для фиксации, сделанной до внесения изменений, и проверьте файл3 с этим идентификатором фиксации git checkout <какой-то идентификатор 2> C: \ Code \ project \ file3.java

  4. Затем выполните git commit git добавить file3.java git commit -m "Удаление файла3 из PR" git push

  5. Проверьте свой PR, сейчас файл 3 должен быть удален.

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

$ 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

ЛЕГКИЙ СПОСОБ для людей, которые плохо знакомы с git или используют Azure DevOps.

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

Если это сложное изменение, сделайте то же самое, но вы можете посмотреть историю файла, скопировать предыдущую версию (Ctrl-A в Windows), перезаписать версию в ветке dev, затем зафиксировать и нажать.

Удаление файла из запроса на вытягивание, но не из вашего локального репозитория.

  1. Перейдите в свою ветку, откуда вы создали запрос, используйте следующие команды

git checkout - c: \ temp ..... следующий git checkout origin / master - c: \ temp ... u заменить origin / master любой другой веткой. Следующий git commit -m c: \ temp ..... Следующий git push origin

Примечание: нет одинарных или двойных кавычек для пути к файлу

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

пример: $ git checkout pull-request-branch

Заменить измененный файл (ы) файлом из другой ветки:

$git checkout origin/master -- src/main/java/HelloWorld.java

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

$git commit -m "removed a modified file from PR"
$git push

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

Вот как я вам рекомендую:

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

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

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

2022 WebDevInsider