Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git-add不';不能使用通配符_Git_Posh Git - Fatal编程技术网

git-add不';不能使用通配符

git-add不';不能使用通配符,git,posh-git,Git,Posh Git,我试图添加(编辑:删除操作)这些文件中的文本“生成”,但它不起作用。我在用PowerShell # deleted: Apica.WebPerformance.Web.Controllers/SharedController.generated.cs # deleted: Apica.WebPerformance.Web.Controllers/SidebarController.generated.cs # deleted: Apica.W

我试图添加(编辑:删除操作)这些文件中的文本“生成”,但它不起作用。我在用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]> 
所有这些命令实际上都没有任何内容。不过,它可以一个文件一个文件地工作。

也许是这样,好先生

find | grep generated.cs | xargs git add
也许是这个,好先生

find | grep generated.cs | xargs git add

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

  • 看起来您要暂存的文件是shell所在位置的下一个目录,因此您需要添加一个前导的
    *
  • 您希望暂存已删除的文件。有两种方法可以执行此操作:调用每个已删除的文件或使用
    add
    命令的
    -u
    标志。 从文件(重点矿山):

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


  • git add-u*\*.generated.cs应该可以工作。

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

  • 看起来您要暂存的文件是shell所在位置的下一个目录,因此您需要添加一个前导的
    *
  • 您希望暂存已删除的文件。有两种方法可以执行此操作:调用每个已删除的文件或使用
    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

    这里的问题是,通配符只会扩展到文件系统上的文件名(因为shell正在进行扩展,而不是
    git
    )。由于已删除文件,这些文件不在文件系统中,因此需要使用其他命令。有两种简单的方法可以添加删除操作

    git add -u
    
    这将向索引添加所有修改(包括删除)

    git add full/path/to/deleted/file
    
    将添加删除

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

    要获取已删除文件名的列表,此命令应起作用:

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

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

    这应该行得通。你能用一个新的测试库试试吗?可以,我用的是PoshGit。我也认为这真的应该奏效,但我不明白为什么不行。哦,我忘了说这些文件实际上被删除了,我想把它们删除。(红色)请看我的回答,依赖shell查找已删除文件的命令将无法工作,因为文件系统中不再存在这些文件。@AndrewMyers
    -u
    匹配索引中的文件,而不是工作树中的文件,因此,即使文件不在文件系统中,给出一个模式也会起作用。@r0管理git文档的编写方式听起来好像git正在处理文件全局。但这不是unixshell的工作方式。git甚至从未看到未展开的文件glob,shell将其展开。git然后处理生成的文件列表。验证这一点很简单。只需删除当前目录中的一个文件,然后运行
    git add-u*
    。将不会添加已删除的文件。我没有访问Powershell的权限,它确实依赖git来处理glob,但如果git实现的语义不是unix shell的语义,我会感到惊讶。这应该是可行的。你能用一个新的测试库试试吗?可以,我用的是PoshGit。我也认为这真的应该奏效,但我不明白为什么不行。哦,我忘了说这些文件实际上被删除了,我想把它们删除。(红色)请看我的回答,依赖shell查找已删除文件的命令将无法工作,因为文件系统中不再存在这些文件。@AndrewMyers
    -u
    匹配索引中的文件,而不是工作树中的文件,因此,即使文件不在文件系统中,给出一个模式也会起作用。@r0管理git文档的编写方式听起来好像git正在处理文件全局。但这不是unixshell的工作方式。git甚至从未看到未展开的文件glob,shell将其展开。git然后处理生成的文件列表。验证这一点很简单。只需删除当前目录中的一个文件,然后运行
    git add-u*
    。将不会添加已删除的文件。我没有访问Powershell的权限,而且它确实依赖git来处理glob,但是如果git实现的语义不是unix shell的语义,我会感到惊讶。由于缺少参数,所以无法工作,但是为了做这么简单的事情,这似乎有些过分了。谢谢你的贡献!由于疏忽,没有工作