git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Cleaning ignored files

From
John Szakmeister <john@szakmeister.net>
Date
Nov 10, 2016, 09:19 UTC
Message-ID
<CAEBDL5VWpnoQdD6TJgdLBgFbb9HZzwYyLDbVz1O3s5As5otLQg@mail.gmail.com>
In-Reply-To
<CALbGNxUahc0b151niqS3Qd6N8wapY5RWJs1w0ZSf6ZW1=id6vA@mail.gmail.com>
On Wed, Nov 9, 2016 at 1:23 PM, Roman Terekhov <roman.terekhov@gmail.com> wrote:
Show 41 quoted lines
> Hi,
>
> I want to ask about git clean -dXf command behaviour.
>
> I do the following:
>
> $ mkdir gitignore_test
> $ cd gitignore_test/
> $ git init
> Initialized empty Git repository in ~/gitignore_test/.git/
>
> $ echo *.sln > .gitignore
> $ git add .gitignore
> $ git commit -m "add gitignore"
> [master (root-commit) ef78a3c] add gitignore
>  1 file changed, 1 insertion(+)
>  create mode 100644 .gitignore
>
> $ mkdir src
> $ touch test.sln
> $ touch src/test.sln
> $ tree
> .
> ├── src
> │   └── test.sln
> └── test.sln
>
> 1 directory, 2 files
>
> $ git clean -dXf
> Removing test.sln
>
> $ tree
> .
> └── src
>     └── test.sln
>
> 1 directory, 1 file
>
>
> Why git clean -dXf does not remove all my test.sln files, but just one of them?

src/ is not under version control, and currently git does not descend into unknown folders to remove ignored files. If you had a tracked or staged file in src/, then git would descend into src/ and remove test.sln as expected. In your example, try doing:

$ touch src/foo.c $ git add src/foo.c $ git clean -dXf Removing src/test.sln Removing test.sln

Hope that helps!
-John
Previous: Roman Terekhov
Message 2 of 2 in “Cleaning ignored files”
  1. Roman TerekhovNov 9, 2016
  2. John SzakmeisterNov 10, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.