RE: [Feature request] Add -u option to git rm to delete untracked files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello All,

Thanks for the responses!
I was not aware of the alias option, but it gave me the following idea that seems to work:
git config --global alias.rmclean '!git rm -r -f $1; git clean -f $1'

A dir with a untracked file 'file1' will give:
git rmclean file1
fatal: pathspec 'file1' did not match any files
Removing file1
but effectively the file is gone.

A dir with a tracked file 'file2' will give:
git rmclean file2
rm 'file2'

alternatively, ignore the errors:
git config --global alias.rmclean '!git rm -r -f $1 2>/dev/null; git clean -f $1 2>/dev/null'

some setup as above, untracked file1, tracked file2 in one go:
git rmclean .

gives:
rm 'file2'
Removing file1

So I think I solved my own question :-)

Kind regards,
Erik.


> Op 27 mei 2020 om 16:29 schreef "Randall S. Becker" <rsbecker@xxxxxxxxxxxxx>:
> 
> 
> On May 27, 2020 8:45 AM, Ðoàn Tr?n Công Danh wrote:
> > To: Erik Janssen <eaw.janssen@xxxxxxxxx>
> > Cc: git@xxxxxxxxxxxxxxx
> > Subject: Re: [Feature request] Add -u option to git rm to delete untracked
> > files
> > 
> > On 2020-05-26 23:21:23+0200, Erik Janssen <eaw.janssen@xxxxxxxxx> wrote:
> > > Would it be feasible to add a -u option to git rm to specify that I
> > > also want a file deleted if it is not tracked by git?
> > > Currently, git rm -f can remove files in whatever state it seems,
> > > except when it is untracked.
> > > By allowing a -u option (-u: also delete untracked files) I would be
> > > sure that the file is gone while it would also make sure that it
> > > doesn't break past behaviour where people perhaps rely on git rm to
> > > leave untracked files alone.
> > 
> > I _think_ remove untracked file is pretty much risky operation, and it should
> > be done separately/independently (via git-clean(1)).
> 
> A git alias could easily be set up to do this, of course dangerous because of what git-clean does without any arguments:
> 
>     git config --global alias.rmu 'clean -f --'
> 
> > Let's assume we have -u|--untracked,
> > nothing (probably) can stop our users from:
> > 
> > 	git rm -u src
> > 	git rm -u .
> > 
> > Even git-clean(1) requires either --force or --interactive because it's too
> > much risky to begin with.
> > 
> > If we think Git as a FileSystem, its rm should only care about its tracked file. I
> > prefer to just rm(1) instead of "git-rm -u".
>




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux