1

我正在尝试添加(编辑:删除操作)这些文件,其中包含“生成”文本,但它不起作用。我正在使用 PowerShell。

#       deleted:    Apica.WebPerformance.Web.Controllers/SharedController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/SidebarController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/SubscriptionController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/ToolsController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/UnauthorizedController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/UrlCheckController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/UrlCheckWizardController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/UserSessionContextController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/UserSessionContextDataController.generated.cs
#       modified:   Apica.WebPerformance.Web.Controllers/ViewModels/Checks/CheckListViewModel.cs
#       modified:   Apica.WebPerformance.Web.Controllers/ViewModels/Checks/ChecksOverviewViewModel.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/WebSocketCheckWizardController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/WebSocketJmsCheckWizardController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/WidgetsController.generated.cs
#       deleted:    Apica.WebPerformance.Web.Controllers/WizardController.generated.cs
#       modified:   Apica.WebPerformance.Web/Assets/Common/Css/jquery.multiSelect.css
#       modified:   Apica.WebPerformance.Web/Views/Examples/MultiSelect.cshtml
#
C:\git_apica\WebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add *generated.cs
C:\git_apica\WebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add '*generated.cs'
C:\git_apica\WebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add '*generated*'
C:\git_apica\WebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add \*generated.cs
C:\git_apica\WebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add '*generated.cs'
C:\git_apica\WebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> 

这些命令都没有实际执行任何操作。但是,它逐个文件地工作。

4

3 回答 3

2

也许这个,好先生

find | grep generated.cs | xargs git add
于 2013-02-12T14:59:21.247 回答
2

看起来您的命令有两个小问题

  1. 看起来您要暂存的文件是外壳所在位置的目录,因此您需要添加前导*.
  2. 您想要暂存已删除的文件。有两种方法可以git rm <file name>在每个删除的文件中调用或使用命令的-u标志add。从文档(强调我的):

    -u
    --update
    只匹配索引中已经跟踪的文件而不是工作树。这意味着它永远不会暂存新文件,但它将暂存已修改的跟踪文件的新内容,并且如果工作树中的相应文件已被删除,它将从索引中删除文件

git add -u *\*.generated.cs应该管用。

于 2013-02-12T15:02:43.053 回答
0

这里的问题是通配符只会扩展到文件系统上的文件名(因为 shell 正在执行扩展,而不是git)。由于您已删除文件,它们不在文件系统上,因此您需要不同的命令。添加删除操作有两种简单的方法。

git add -u

这会将所有修改(包括删除)添加到索引中。

git add full/path/to/deleted/file

将添加删除。

或者,如果您用于git rm删除文件,则会自动为您添加删除操作。

要获取已删除文件名的列表,此命令应该有效:

git status --porcelain | awk '/^ D/ {print $2}'

然后,您可以xargs按照 Steven Penny 的建议将结果输入。

于 2013-02-13T13:41:55.230 回答