Jag använder Git och jag har lagt in några filer med hjälp av
git commit -a
Senare upptäckte jag att en fil av misstag hade lagts till i överföringen.
Hur kan jag ta bort en fil från den senaste commit?
ATTENTION! Om du bara vill ta bort en fil från din tidigare commit och behålla den på disken, läs juzzlin's svar ovan.
Om detta är din sista commit och du vill helt radera filen från ditt lokala och fjärrförvaret, kan du göra det:
git rm <file>
git commit --amend
.Flaggan amend säger åt git att göra en ny commit, men "sammanfoga" (inte i betydelsen att sammanfoga två grenar) denna commit med den senaste.
Som det står i kommentarerna är det att använda git rm
här som att använda själva kommandot rm
!
Om du inte har lagt över ändringarna på servern kan du använda
git reset --soft HEAD~1
Det kommer att återställa alla ändringar och återgå till en commit tillbaka.
Om du har pushat dina ändringar följer du de steg som besvarats av @CharlesB
Om du tar bort filen med rm raderas den!
Du lägger alltid till en commit i git snarare än tar bort den, så i det här fallet återställer du filen till det tillstånd den var i innan den första commit (detta kan vara en delete 'rm' åtgärd om filen är ny) och sedan återkommitterar du filen så att den försvinner.
För att återställa filen till ett tidigare tillstånd:
git checkout <commit_id> <path_to_file>
eller för att återställa den till tillståndet i den fjärrstyrda HEAD:
git checkout origin/master <path_to_file>
ändra sedan commit och du bör se att filen har försvunnit från listan (och inte raderats från din disk!)