Supprimer un fichier modifié de la demande d'extraction

102

J'ai 3 fichiers modifiés (pas de nouveaux fichiers) dans une pull request pour le moment.

Je voudrais supprimer l'un de ces fichiers de la demande d'extraction, de sorte que la demande d'extraction ne contienne que les modifications apportées à deux fichiers et laisse le troisième dans son état d'origine non modifié.

J'ai essayé quelques choses (vérifier la version originale du fichier, etc ...) mais cela apparaît toujours comme un fichier modifié dans le PR.

Y a-t-il une solution à cela?

jlee
la source
Si les modifications apportées au fichier se trouvent dans leur (s) propre (s) commit (s), vous pouvez faire un rebase interactif et supprimer le ou les commit (s) affectant le fichier que vous voulez inchangé, puis effectuer une poussée forcée vers votre branche. Github devrait détecter automatiquement cela.
Dentych

Réponses:

242

Basculez vers la branche à partir de laquelle vous avez créé la pull request:

$ git checkout pull-request-branch

Écrasez le ou les fichiers modifiés par le fichier dans une autre branche, considérons qu'il est maître :

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

Validez et poussez-le vers la télécommande:

git commit -m "Removed a modified file from pull request"
git push origin pull-request-branch
Arpit Aggarwal
la source
4
Ne fonctionne pas en me montrant l'erreur: pathspec '{file / path.js}' ne correspond à aucun fichier connu de git.
raftaar1191
8
Cela fonctionne et une solution éprouvée, il suffit de vérifier votre chemin correctement
Pavan T
2
cela fonctionne pour les fichiers autour du fichier sur lesquels je veux réellement effectuer l'action ... donc je ne pense pas que c'est quelque chose qui ne va pas avec le chemin
Tim Boland
1
@ArpitAggarwal cela fonctionne très bien. Merci beaucoup.
Chaklader Asfak Arefe le
1
C'est génial. Extrêmement utile.
Jake
10

Vous voudrez modifier le commit et ensuite faire une poussée forcée qui mettra à jour la branche avec le PR.

Voici comment je vous recommande de faire ceci:

  1. Fermez le PR afin que quiconque l'examine ne le récupère pas tant que vous n'avez pas effectué vos modifications.
  2. Effectuez une réinitialisation logicielle du commit avant votre modification indésirable (si c'est le dernier commit que vous pouvez utiliser git reset --soft HEAD^ou s'il s'agit d'un commit différent, vous voudrez remplacer 'HEAD ^' par l'ID de commit)
  3. Annuler (ou annuler) toute modification du fichier que vous n'aviez pas l'intention de mettre à jour
  4. Faire un nouveau commit git commit -a -c ORIG_HEAD
  5. Forcer le Push vers votre succursale
  6. Rouvrir la demande de tirage

Le maintenant que votre branche a été mise à jour, la demande d'extraction inclura vos modifications.

Voici un lien vers la documentation Gits où ils ont un très bon exemple sous Annuler un commit et refaire .

Keif Kraken
la source
-5

Une pull request est juste cela: une demande de fusion d'une branche dans une autre.

Votre pull request ne "contient" rien, c'est juste un marqueur disant "s'il vous plaît fusionner cette branche dans celle-là".

L'ensemble des changements que le PR affiche dans l'interface utilisateur Web ne sont que les changements entre la branche cible et votre branche de fonctionnalités. Pour modifier votre demande d'extraction, vous devez modifier votre branche d'entités, probablement avec une poussée forcée vers la branche d'entités.

Dans votre cas, vous voudrez probablement modifier votre commit. Vous n'êtes pas sûr de votre situation exacte, mais une combinaison de rebase interactif add -pdevrait vous aider .

Chris Kitching
la source