我正在尝试添加(编辑:删除操作)这些文件中的文本"已生成",但它不起作用。我正在使用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_apicaWebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add *generated.cs
C:git_apicaWebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add '*generated.cs'
C:git_apicaWebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add '*generated*'
C:git_apicaWebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add *generated.cs
C:git_apicaWebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]> git add '*generated.cs'
C:git_apicaWebPerformance.Web [ViewModelRefactor +6 ~2 -0 | +0 ~6 -52]>
这些命令中没有一个实际执行任何操作。然而,它一个文件接一个文件地工作。
也许是这样,好先生
find | grep generated.cs | xargs git add
您的命令似乎有两个小问题
- 看起来要暂存的文件是shell所在位置的下一个目录,因此需要添加一个前导
*
-
您希望暂存已删除的文件。有两种方法可以在每个删除的文件中调用
git rm <file name>
或使用add
命令的-u
标志。来自文件(重点矿):-u
--更新
仅与索引中已跟踪的文件匹配,而不是与工作树匹配。这意味着它永远不会暂存新文件,但它将暂存被跟踪文件的修改后的新内容,并且如果工作树中的相应文件已被删除,它将从索引中删除文件。
git add -u **.generated.cs
应该起作用。
这里的问题是通配符只会扩展到文件系统上的文件名(因为shell正在进行扩展,而不是git
)。由于您已经删除了文件,它们不在文件系统中,因此您需要一个不同的命令。有两种简单的方法可以添加删除操作。
git add -u
这将向索引添加所有修改(包括删除)。
git add full/path/to/deleted/file
将添加删除。
或者,如果使用git rm
删除文件,则会自动为您添加删除操作。
要获得已删除文件名的列表,此命令应该有效:
git status --porcelain | awk '/^ D/ {print $2}'
然后,您可以按照Steven Penny的建议将结果导入xargs
。