J'ai une demande d'extraction ouverte contenant des fichiers project.lock.json
que je ne souhaite pas fusionner lors de la fusion de ma branche avec la branche principale. Est-il possible de supprimer ces fichiers project.lock.json
de ma demande d'extraction?
Vous devez supprimer le fichier, valider les modifications et effectuer le prochain envoi vers votre branche.
Si vous souhaitez laisser le fichier dans votre branche, mais ne pas le fusionner avec la branche principale, vous pouvez le supprimer dans un commit, puis l'ajouter dans un autre. Git vous permet d'accepter manuellement certains commits à l'aide de git-cherry-pick. Vous pouvez accepter chaque commit sauf celui dans lequel vous avez ajouté ce fichier à nouveau.
S'il vous plaît, faites-moi savoir s'il y a une meilleure façon de le faire. C'est la solution de contournement que j'ai trouvée.
liste des branches distantes
git branch -va
la caisse de la branche PR
git checkout Origin pr_branch
remplace le fichier de pr_branch par le fichier de other_branch
git checkout other_branch -- ./path/to/file
commettre des modifications
git commit -m "overwrite with other_branch's"
Poussez vos changements
git Push Origin pr_branch
Je pense que vous pouvez simplement remplacer votre project.lock.json par celui d'origine et commettre.
Commencez par trouver le commit spécifique qui affecte ce fichier. Ensuite, les deux commandes ci-dessous doivent rétablir les commits dans ce fichier.
git revert <commit>
git Push Origin <branch name>
S'ils sont déjà engagés, il n'y a pas de solution facile à laquelle je puisse penser. La manière la plus simple, et une sorte de solution de contournement, est probablement de les déplacer hors du dossier de projet, de les supprimer de votre copie de travail git, de recommencer l'opération pour que votre branche ne contienne pas les fichiers JSON. Ensuite, lors de la fusion, vos fichiers JSON ne seront pas transmis.
Vous pouvez extraire master et extraire votre branche puis la rebaser contre master Et rebase master pour vous assurer que vous ne l'avez supprimée que de votre PR mais pas du référentiel. Ainsi, lorsque vous fusionnerez sur master, il ne supprimera pas ces fichiers mais uniquement. de votre PR.
git checkout master
git pull
git checkout <your-branch>
git rebase master
git Push