Re: ``git clean -xdf'' and ``make clean''
- From
Jacob Keller <jacob.keller@gmail.com>
- Date
- Feb 7, 2017, 19:35 UTC
- Message-ID
- <CA+P7+xpesQVS5qZJZ5wd31eJDLmb5j0Xdq_rwajjoskB07ELfg@mail.gmail.com>
- In-Reply-To
- <fe8595aa-0395-e948-13e9-f952541d106e@tngtech.com>
On Tue, Feb 7, 2017 at 7:07 AM, Cornelius Weig <cornelius.weig@tngtech.com> wrote:
Show 19 quoted lines
> On 02/07/2017 03:17 PM, Hongyi Zhao wrote: >> Hi all, >> >> In order to delete all of the last build stuff, does the following two >> methods equivalent or not? >> >> ``git clean -xdf'' and ``make clean'' > > No, it is not equivalent. > > * `make clean` removes any build-related files (assuming that the > `clean` target is properly written). To see exactly what it would do, > run `make clean -n`. Judging from your question, I think this is what > you want to do. > > * `git clean -xdf` would remove any files that git does not track. This > also includes build-related files, but also any other files that happen > to be in your working directory. For example, any output from `git > format-patch` would be removed by this, but not `make clean`.
Make clean can run arbitrary code, and really depends on the implementation. git clean -xdf will result in all non-tracked files being removed, which should restore you to a pristine pre-build state. However, this can have unfortunate side effect of destroying files which you might not expect.
Properly written, a make clean shouldn't remove anything except what could be regenerated by make. But that's just a strong convention.
Regards, Jake