【问题标题】:clean untracked directories only只清理未跟踪的目录
【发布时间】:2021-04-01 12:08:43
【问题描述】:

如果我重命名一些目录,然后提交并推送到原点,然后从另一台计算机中提取,我将找到旧目录和新目录。在旧目录中会有一些被忽略的文件。如何删除所有此类未跟踪的目录,而不触及任何已跟踪目录中的任何文件(已跟踪或未跟踪)。

(“跟踪目录”是指其中至少包含一个跟踪文件的目录。)

【问题讨论】:

    标签: git git-clean


    【解决方案1】:

    试试这个:

    git clean -d -fx
    

    -d:告诉 git clean 你还想删除所有未跟踪的目录,默认情况下它会忽略目录。
    -f:强制选项启动从当前目录中实际删除未跟踪文件。
    -x:告诉 git clean 也包括任何被忽略的文件。

    【讨论】:

      【解决方案2】:
      git clean -dX
      

      -d 选项导致git-clean 递归到未跟踪的目录。

      -X 选项导致git-clean 删除被忽略的文件。

      您还可以指定要清理的目录:

      git clean -dX myDirectory
      

      您可以先通过添加-n 选项来尝试试运行。试运行实际上并没有删除任何内容,它只是显示将要做什么。

      git clean -dXn
      

      【讨论】:

        【解决方案3】:

        你可能在git clean -X之后。

        来自git-scm

        -X

        仅删除 Git 忽略的文件。这可能有助于从头开始重建所有内容,但保留手动创建的文件。

        这是一个示例,其中包含一个跟踪文件、一个未处理文件和一个忽略文件。

        $ ls
        x.txt  y.txt  z.txt
        
        $ cat .gitignore
        y.txt
        
        $ git status
        On branch master
        Untracked files:
          (use "git add <file>..." to include in what will be committed)
        
                z.txt
        
        nothing added to commit but untracked files present (use "git add" to track)
        
        $ git clean -X --dry-run
        Would remove y.txt
        
        $ git clean -Xf
        Removing y.txt
        
        $ ls
        x.txt  z.txt
        
        $ git status
        On branch master
        Untracked files:
          (use "git add <file>..." to include in what will be committed)
        
                z.txt
        
        nothing added to commit but untracked files present (use "git add" to track)
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-05
          • 2017-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-06
          • 2016-12-26
          • 2013-09-01
          相关资源
          最近更新 更多