Видаліть модифікований файл із запиту на витягування


103

На даний момент у мене є 3 модифіковані файли (нових файлів немає).

Я хотів би видалити один із цих файлів із запиту на витягування, щоб запит на витягування містив зміни лише до двох файлів, а третій залишав у вихідному, незайманому стані.

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

Чи є рішення цього?


Якщо модифікації файлу містяться у власних комітах, ви можете виконати інтерактивне перебазування та видалити коміти, що впливають на файл, який ви хочете змінити, а потім виконати примусове натискання на вашу гілку. Github повинен це автоматично виявити.
Дентіч

Відповіді:


242

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

$ 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

4
Не працює, показуючи мені помилку: pathspec '{file / path.js}' не відповідає жодному файлу (файлам), про який відомо git.
raftaar1191,

8
Це робоче і перевірене рішення, просто перевірте свій шлях правильно
Pavan T,

2
це працює для файлів навколо файлу, на якому я насправді хочу виконати дію ... тому я не думаю, що це щось не так із цим шляхом
Тім Боланд

1
@ArpitAggarwal це працює нормально. Дуже дякую.
Chaklader Asfak Arefe

1
Це чудово. Надзвичайно корисний.
Джейк

10

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

Ось як я рекомендую вам зробити це:

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

Тепер, коли ваша гілка оновлена, запит на витягнення включатиме ваші зміни.

Ось посилання на документацію Gits, де вони мають досить хороший приклад у розділі Скасувати коміт і повторити .


-5

Запит на витягування - це саме це: запит на об'єднання однієї гілки в іншу.

Ваш запит на витягування нічого "не містить", це лише маркер, який говорить "будь ласка, об'єднайте цю гілку в цю".

Набір змін, який PR відображає у веб-інтерфейсі, - це лише зміни між цільовою гілкою та вашою гілкою функцій. Щоб змінити ваш запит на витягування, ви повинні змінити свою гілку об’єкта, можливо, силовим натисканням на гілку функції.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.