Il n'y a aucun moyen de les supprimer sans modifier l'historique, donc si quelqu'un a apporté les modifications, vous devrez peut-être faire face à ce désordre - voir recovering from upstream rebase dans man git-rebase
. Cela peut être assez mauvais, en fonction de votre flux de travail - d'une manière ou d'une autre, vous devrez probablement faire prendre conscience à tous qu'ils doivent passer à la «nouvelle» branche maîtresse, en réajustant tout travail en cours.
Si l'essai COMMIT étaient encore à la pointe, vous pouvez réinitialiser à engager avant d':
git reset --hard HEAD^
ou modifier:
git rm test.wav
git commit --amend
Mais comme il est plus à la pointe, votre meilleur pari est probablement faire sans doute avec un rebasage interactif:
git rebase -i <commit-before-mistake>
Change « pick » à « modifier » sur la commettre que vous voulez réparer, alors faites-le! (Ou même enlever toute commettras si c'est correct) *
Une fois que vous avez fini de faire celui de ces que vous choisissez, vous devrez forcer la poussée, car il est plus une avance rapide:
git push -f origin
* Si vous avez par la suite validé des modifications sur ces fichiers, vous rencontrerez des problèmes à mesure que vous continuerez à rebaser. Ils devraient être simples à traiter, puisque vous voulez juste que les fichiers disparaissent. Bien sûr, s'il y a eu une centaine de commits depuis ce temps-là, cela peut causer des conflits, vous pouvez regarder git-filter-branch
. L'exemple pertinent de la man page est:
git filter-branch --index-filter ’git rm --cached --ignore-unmatch filename’ HEAD
La vraie question va probablement ici à réécrire l'histoire que d'autres ont déjà tiré - il y a beaucoup de messages ici, ainsi que des choses que vous pouvez trouver avec Google traitant de ce problème particulier, outre la section de page de manuel que j'ai mentionnée dans ma réponse. – Cascabel
Eh bien, je suis actuellement le seul committer sur le projet, donc cela rend les choses un peu plus faciles à cet égard. –