Премахване на файлове от ангажимент на Git

Използвам Git и съм ангажирал няколко файла с помощта на

git commit -a

По-късно установих, че един файл е бил добавен по погрешка към предаването.

Как мога да премахна файл от последния коммит?

ВЪЗМОЖНОСТ! Ако искате само да премахнете даден файл от предишната си ревизия и да го запазите на диска, прочетете отговора на juzzlin's малко по-горе.

Ако това е последният ви commit и искате да изтриете изцяло файла от локалното и отдалеченото хранилище, можете да го направите:

  1. да премахнете файла git rm
  2. да извършите коммит с флаг amend: git commit --amend

Флагът amend указва на git да предаде отново, но да "слее" (не в смисъл на сливане на два клона) този commit с последния commit.

Както е посочено в коментарите, използването на git rm тук е все едно да използвате самата команда rm!

Коментари (5)

Ако не сте прехвърлили промените на сървъра, можете да използвате

git reset --soft HEAD~1

Тя ще нулира всички промени и ще се върне към един ангажимент назад

Ако сте изтласкали промените си, следвайте стъпките, на които отговори @CharlesB

Коментари (8)

Премахването на файла чрез rm ще го изтрие!

В git винаги добавяте, а не премахвате, така че в този случай върнете файла в състоянието, в което е бил преди първото предаване (това може да е действие delete 'rm', ако файлът е нов) и след това го предайте отново и файлът ще изчезне.

За да върнете файла в някакво предишно състояние:

    git checkout  <path_to_file>

или да го върнете в състоянието, в което се намира в отдалечения HEAD:

    git checkout origin/master <path_to_file>

след това променете ангажимента и ще видите, че файлът е изчезнал от списъка (а не е изтрит от диска ви!)

Коментари (0)