代码之家  ›  专栏  ›  技术社区  ›  Johnno Nolan

使用Git,如何一次性提交一批已删除的文件?

git
  •  0
  • Johnno Nolan  · 技术社区  · 15 年前

    我有一堆要提交的已删除文件。

    但我不想为每一个输入git rm。

    如果我键入git rm。-r它将尝试删除所有内容。

    我应该键入什么来一次性提交所有这些删除?

    请参见下面的Git状态 已更改但未更新: (使用“git add/rm…”更新将提交的内容) (使用“git checkout--…”放弃工作目录中的更改)

       deleted:    ProjectX/ProjectX/Content/Site.css
       deleted:    ProjectX/ProjectX/Controllers/HomeController.cs
       deleted:    ProjectX/ProjectX/Global.asax
       deleted:    ProjectX/ProjectX/Global.asax.cs
       deleted:    ProjectX/ProjectX/Models/HomeIndexView.cs
       deleted:    ProjectX/ProjectX/ProjectX.csproj
       deleted:    ProjectX/ProjectX/Properties/AssemblyInfo.cs
       deleted:    ProjectX/ProjectX/Scripts/MicrosoftAjax.debug.js
       deleted:    ProjectX/ProjectX/Scripts/MicrosoftAjax.js
       deleted:    ProjectX/ProjectX/Scripts/MicrosoftMvcAjax.debug.js
       deleted:    ProjectX/ProjectX/Scripts/MicrosoftMvcAjax.js
       deleted:    ProjectX/ProjectX/Scripts/MicrosoftMvcValidation.debug.js
       deleted:    ProjectX/ProjectX/Scripts/MicrosoftMvcValidation.js
       deleted:    ProjectX/ProjectX/Scripts/jquery-1.3.2-vsdoc.js
       deleted:    ProjectX/ProjectX/Scripts/jquery-1.3.2.js
       deleted:    ProjectX/ProjectX/Scripts/jquery-1.3.2.min-vsdoc.js
       deleted:    ProjectX/ProjectX/Scripts/jquery-1.3.2.min.js
       deleted:    ProjectX/ProjectX/Scripts/jquery.validate-vsdoc.js
       deleted:    ProjectX/ProjectX/Scripts/jquery.validate.js
       deleted:    ProjectX/ProjectX/Scripts/jquery.validate.min-vsdoc.js
       deleted:    ProjectX/ProjectX/Scripts/jquery.validate.min.js
       deleted:    ProjectX/ProjectX/Views/Home/Index.aspx
       deleted:    ProjectX/ProjectX/Views/Shared/Error.aspx
       deleted:    ProjectX/ProjectX/Views/Shared/Site.Master
       deleted:    ProjectX/ProjectX/Views/Web.config
       deleted:    ProjectX/ProjectX/Web.config
    
    2 回复  |  直到 15 年前
        1
  •  7
  •   CB Bailey    15 年前
    git add -u
    

    将阶段化所有更改,包括删除。这通常是最简单的前进方式。如果更合适的话,可以将其限制在某些路径上。

    例如

    git add -u ProjectX
    

    在完成任何一项操作后,您都可以使用路径形式的reset to‘unstage’来取消不需要的任何更改。

    git reset -- dontcommitme.txt
    

    要绝对确保只进行删除操作,必须执行以下操作:

    git diff --name-only --diff-filter=D | xargs git rm --
    

    或者,如果您有权访问GNU xargs,并且需要在文件名中使用空白进行复制:

    git diff -z --name-only --diff-filter=D | xargs -0 git rm --
    
        2
  •  2
  •   Zitrax dudico    15 年前

    git commit -a

    只要这些是您唯一的更改就可以工作(它将添加所有未分页的文件并提交)。