How do I delete all untracked files from my working directory in Mercurial?

前端 未结 10 497
长情又很酷
长情又很酷 2021-01-29 18:11

Is it possible to delete all untracked files from my working directory? Let\'s say I added a bunch of files to my working directory, didn\'t add them via \'hg add\' and now want

相关标签:
10条回答
  • 2021-01-29 18:40

    Thanks! This worked for me also in Powershell:

    hg st -un | rm
    
    0 讨论(0)
  • 2021-01-29 18:44

    Add the Mercurial Extension called purge. It is distributed by Mercurial.

    This extension adds a “purge” command to “hg” that removes files not known to Mercurial. i.e. untracked Files. So your command would be,

    hg purge
    

    It is not enabled by default, maybe to avoid accidentally removing files that you forgot to add.

    To install this extension, add this to your mercurial settings file (.hgrc on Unix, Mercurial.ini on Windows)

    [extensions]
    purge = 
    

    To enable this extension temporarily you can use

    hg purge --config extensions.purge= 
    
    0 讨论(0)
  • 2021-01-29 18:46

    Try following:

    hg st -un | xargs rm
    
    0 讨论(0)
  • 2021-01-29 18:46

    This works from Windows 10 command line (used cautiously of course):

    for /f %g in ('hg status -un') do @echo %g & @del %g
    
    0 讨论(0)
  • 2021-01-29 18:48
    rm $(hg st -u)
    

    ...where -u stands for "untracked" you can also pick another state.

    0 讨论(0)
  • 2021-01-29 18:48

    Assuming that you are using a *nix system you could run something like this:

    rm `hg st | awk '/\?/ {print $2}'`
    

    from the root of the mercurial repository.

    I don't know of a standard mercurial command to achieve the same but I believe there are many more command-line options to do this. I'm sure there are "better" solutions and would be interested to hear any other suggestions.

    Please use this command with caution as it was not thoroughly tested.

    0 讨论(0)
提交回复
热议问题