git add';是否有否定语法;什么样的文件模式?
假设我想使用git add';是否有否定语法;什么样的文件模式?,git,Git,假设我想使用git add(或其他一些命令行指令-我不能使用.gitignore)来添加除*.hi文件之外的所有文件。有办法做到这一点吗?到目前为止,我已经尝试: git add'!*。您好‘ git-add'!(*.hi) 据我所知,这是在glob语法中指定否定的方式,也是在.gitignore中指定否定的方式。然而,对于这两个命令,我都收到了错误fatal:[pattern]与任何文件都不匹配。值得一提的是,我正在从Windows Powershell运行这些命令。在Powershell中,
git add
(或其他一些命令行指令-我不能使用.gitignore)来添加除*.hi文件之外的所有文件。有办法做到这一点吗?到目前为止,我已经尝试:
git add'!*。您好‘
git-add'!(*.hi)
据我所知,这是在glob语法中指定否定的方式,也是在.gitignore中指定否定的方式。然而,对于这两个命令,我都收到了错误
fatal:[pattern]与任何文件都不匹配。值得一提的是,我正在从Windows Powershell运行这些命令。在Powershell中,这可以工作:
git add $(Get-ChildItem -Recurse -Exclude '*.hi')
纯Git的方法是将它们全部添加,然后再次从索引中删除不需要的文件:
git add .
git rm --cached *.hi
只需要使用--cached
将它们从索引中删除;否则,您将删除这些文件。请注意,git rm
将始终“添加删除”到索引中,因此这可能不是您希望跟踪文件的情况。然后您应该使用Klas Mellbourn在评论中建议的git reset
:
git add .
git reset -- *.hi
排除模式是
git add'!:*。嗨
注意分号
使用git 2.28.0.windows.1版在PowerShell中测试
我发现有用的而不是最后一行,你也可以做git reset HEAD--*。嗨
@klasournbourn好点!如果.hi
文件已经被跟踪,那么这实际上是唯一的方法。