Bestanden verwijderen uit Git commit

Ik gebruik Git en ik heb een paar bestanden gecommit met

git commit -a

Later ontdekte ik dat een bestand per ongeluk aan de commit was toegevoegd.

Hoe kan ik een bestand uit de laatste commit verwijderen?

ATTENTIE! Als je alleen een bestand van je vorige commit wilt verwijderen, en het op schijf wilt houden, lees dan juzzlin's antwoord net hierboven.

Als dit je laatste commit is en je wilt het bestand volledig verwijderen uit je lokale en het externe archief, dan kun je dat doen:

  1. het bestand verwijderen git rm
  2. commit met wijzig vlag: git commit --amend

De amend vlag vertelt git om opnieuw te committen, maar "merge" (niet in de zin van het samenvoegen van twee branches) deze commit met de laatste commit.

Zoals in de opmerkingen staat, is het gebruik van git rm hier hetzelfde als het gebruik van het rm commando zelf!

Commentaren (5)

Als u de wijzigingen niet op de server hebt gepushed, kunt u

git reset --soft HEAD~1

Het zal alle wijzigingen terugzetten en teruggaan naar één commit terug

Als je je wijzigingen hebt gepushed, volg dan de stappen zoals beantwoord door @CharlesB

Commentaren (8)

Het verwijderen van het bestand met rm zal het verwijderen!

Je'voegt altijd toe aan een commit in git in plaats van te verwijderen, dus in dit geval breng je het bestand terug naar de staat waarin het was voor de eerste commit (dit kan een delete 'rm' actie zijn als het bestand nieuw is) en dan opnieuw committen en het bestand zal weggaan.

Om het bestand terug te zetten naar een eerdere toestand:

    git checkout  <path_to_file>

of om het terug te brengen naar de toestand op de HEAD op afstand:

    git checkout origin/master <path_to_file>

wijzig dan de commit en je zou moeten zien dat het bestand van de lijst verdwenen is (en niet van je schijf verwijderd is!)

Commentaren (0)