threads / discuss / 45072

``git clean -xdf'' and ``make clean''

Subject: ``git clean -xdf'' and ``make clean''

## tl;dr

3 messages between Feb 7, 2017 and Feb 7, 2017.

replies: 2people: 3as markdown or json

Hongyi Zhao· Feb 7, 2017, 14:17 UTC · lore
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''
Regards
-- 
Hongsheng Zhao <hongyi.zhao@gmail.com>
Institute of Semiconductors, Chinese Academy of Sciences
GnuPG DSA: 0xD108493
Cornelius Weig· Feb 7, 2017, 15:07 UTC · re: Hongyi Zhao · lore

Re: ``git clean -xdf'' and ``make clean''

On 02/07/2017 03:17 PM, Hongyi Zhao wrote:
Show 6 quoted lines
> 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`.
Jacob Keller· Feb 7, 2017, 19:35 UTC · re: Cornelius Weig · lore

Re: ``git clean -xdf'' and ``make clean''

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

← back to recent threads