2016-12-21 2 views
2

У меня есть файл в моем проекте, который присутствовал в предыдущих коммитах, а затем был удален позже. Я хотел использовать git clean, чтобы удалить файл, но он этого не сделает. Я использовал обходное решение всего rm в файле, но мне интересно:Почему git clean не удаляет определенный файл?

Почему бы git clean не видеть этот файл как кандидат на удаление?


Вот (дезинфицировать) след моих экспериментов:

[email protected]:/myproj/build$ git reset --hard origin/master 
HEAD is now at 64a87ed Merge branch 'dev/phrogz/whee' into 'master' 

[email protected]:/myproj/build$ git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 
Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

    ../app/faux/prep.sh 

nothing added to commit but untracked files present (use "git add" to track) 

[email protected]:/myproj/build$ git clean -n 
[email protected]:/myproj/build$ git clean -f -d 
[email protected]:/myproj/build$ git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 
Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

    ../app/faux/prep.sh 

nothing added to commit but untracked files present (use "git add" to track) 

[email protected]:/myproj/build$ rm ../app/faux/prep.sh 
[email protected]:/myproj/build$ git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 
nothing to commit, working tree clean 
+1

'cd ..; git clean -n' или, возможно, 'git clean -n ..' –

+0

Это ответ, который я не хотел выкладывать до полного ответа. –

ответ

2

help for git clean говорит «Очищает рабочее дерево рекурсивно удаления файлов, которые не находятся под контролем версий, начиная с текущего каталога «. (внимание мое)

Так как файл находится в ../app, вам нужно подняться на один уровень, прежде чем команда попытается его удалить.