Изтриване на изтрити файлове

Да кажем, че имам файл в моя git repostiory, наречен foo .

Да предположим, че е изтрит с rm (не git rm ). След това състоянието на git ще се покаже:

 Changes not staged for commit: deleted: foo 

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

Ако опитам:

 git add foo 

Той казва:

 'foo' did not match any files. 
313
11 сент. зададен от Андрю Томазос 11 септември. 2012-09-11 19:01 '12 в 19:01 2012-09-11 19:01
@ 6 отговора

Използвайте git rm foo за генериране на файл за премахване. (Това също ще премахне файла от файловата система, ако преди това не е бил изтрит. Разбира се, може да бъде възстановен от git, тъй като е бил инсталиран преди това.)

За да създадете файл за изтриване, без да го изтривате от файловата система, използвайте git rm --cached foo

355
11 сент. Отговорът е даден geoffspear 11 сеп . 2012-09-11 19:02 '12 в 7:02 pm 2012-09-11 19:02

Можете да направите git add -u .

border=0

Това ще помогне, ако искате да изтриете няколко файла, без да правите git rm за всеки от тях.

291
11 сент. Отговорът е даден Sailesh 11 септември. 2012-09-11 19:36 '12 в 19:36 ч. 2012-09-11 19:36

За да изпълните всички ръчно изтрити файлове, можете да използвате:

 git rm $(git ls-files --deleted) 

За да добавите псевдоним към тази команда като git rm-deleted , изпълнете:

 git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)' 
74
24 дек. Отговор, даден от Иън Макиннон на 24 декември. 2015-12-24 19:26 '15 в 19:26 2015-12-24 19:26

Добавете всички готови изтрити файлове

 git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all 

благодаря чек, за да се уверите

 git status 

трябва да си добър

19
09 дек. отговорът е даден на четвърто ядро 09 декември. 2015-12-09 18:28 '15 в 18:28 2015-12-09 18:28

Можете да използвате

git rm -r --cached -- "path/to/directory"

за да създадете отдалечена директория.

4
16 янв. Отговорът е даден GameScripting 16 януари 2015-01-16 17:34 '15 в 17:34 2015-01-16 17:34

Тъй като Git 2.0.0, git add ще изтрие файлове.

Документи Git 2.0.0 - git -add

<pathspec> ...

Файлове за добавяне на съдържание. Fileglobs (например, * .c) могат да бъдат зададени за добавяне на всички> съвпадащи файлове. Можете също така да получите името на главната директория (например dir за добавяне на dir / file1 и dir / file2), за да актуализирате индекса в съответствие с текущото състояние на директорията като цяло (например, задаването на директорията не само ще запише файла dir / file1, променен в работното дърво). добави файла dir / file2, добавен към работното дърво, както и файла dir / file3, отстранен от работното дърво.Забележете, че по-старите версии на Git се използват за игнориране на изтрити файлове, използване на --no -всички, ако искате да добавите променени или новите файлове, но игнорират изтриването ennye.

1
27 марта '17 в 23:52 2017-03-27 23:52 отговорът е даден peflorencio 27 март '17 в 23:52 2017-03-27 23:52

Други въпроси относно тагове или Задайте въпрос