On 2024-12-09 at 04:53:24, Homyee King wrote: > But if you try *git clean -xdn -e foo*, the *foo *will be excluded and not > what you said *"it _adds_ to the ignore rules". *It's the confusing part > of *`-e` *option, and I think it should always exclude something within the > given pattern. > If we follow what you said, it should be *--include,* what do you think? The `--exclude` option means "exclude this (mark this as ignored) additionally". I agree it could be misinterpreted, but `--include` could as well. The manual page says this about `-e`: Use the given exclude pattern in addition to the standard ignore rules (see gitignore(5)). And the text says this about `-x`: Don’t use the standard ignore rules (see gitignore(5)), but still use the ignore rules given with -e options from the command line. This allows removing all untracked files, including build products. This can be used (possibly in conjunction with git restore or git reset) to create a pristine working directory to test a clean build. That means that when you say `git clean -xdn -e foo`, Git ignores only `foo`, and says it will remove everything else that would normally be ignored (which is no longer ignored, and thus untracked). Remember that `git clean` only removes untracked files and directories, and `-x` just makes all files normally ignored untracked temporarily for the life of the command. Equivalent text exists in the description section of the manual page. I don't think this is confusing or that the text is inaccurate, but of course if you want to submit a patch to improve the text, I'm sure we'd be happy to take a look. -- brian m. carlson (they/them or he/him) Toronto, Ontario, CA
Attachment:
signature.asc
Description: PGP signature