使用git Add添加除一个目录之外的所有文件

使用git Add添加除一个目录之外的所有文件,git,Git,我正在尝试使用以下命令将所有文件添加到我的git索引中 git add -A 但是,有一个目录包含非常大的文件,导致此错误: fatal: confused by unstable object source data for 9f8c02a8d2a04d7fffed08b299a0cb8996ab7ecb 因此,添加过程被中断!在添加其他所有内容时,如何告诉git我要排除此目录?可用的在线解决方案首先添加所有内容,然后删除一些文件。显然,我不能这样做,因为在特定目录中添加文件时git崩溃。

我正在尝试使用以下命令将所有文件添加到我的git索引中

git add -A
但是,有一个目录包含非常大的文件,导致此错误:

fatal: confused by unstable object source data for 9f8c02a8d2a04d7fffed08b299a0cb8996ab7ecb

因此,添加过程被中断!在添加其他所有内容时,如何告诉git我要排除此目录?可用的在线解决方案首先添加所有内容,然后删除一些文件。显然,我不能这样做,因为在特定目录中添加文件时git崩溃。

如果您的git版本足够新

git add -- . ':!<path>'
git添加--.:!'

表示当前目录下的所有,以及
:!'表示排除路径。因此,这意味着要添加除路径之外的所有内容,为什么不简单地“git add-A dir1 dir2 dir3等”,而不提供您不想要的内容呢?否则请使用
gitignore
。请永远不要(如果您知道自己在做什么也不要)添加所有文件,这(出于某些原因)很糟糕practice@NicoAlbers我该怎么做呢?逐个选择?我至少可以添加一个完整的目录吗?是的,最佳做法是逐个添加,并查看每个文件的差异。使用一些图形化工具,这会更容易,但在命令行上也可以很好地工作。添加时,提交不想提交的文件(敏感数据、未准备好的版本等)的风险太高。至少你应该在提交(
git status
)之前看一看,不要使用
git commit-a
@nicalbers可能是一个最佳实践,但是如果你检查了
git status
,我认为做
git add很好。
,这比手动添加文件/文件夹更有效。下面是我输入的内容:git add--.:!“聚合数据”,下面是我得到的:致命:pathspec“聚合数据/user70b596ed89eccbe1/:!聚合数据“”与任何files@Moh你的Git版本是什么?我在错误的目录中。在depo的根目录中,我收到以下消息:fatal:pathspec':!聚合数据/'与版本为1.7的任何文件都不匹配。1@Moh1.7.1太旧,无法支持此功能。如果您使用的是
gitbash
或*nix,请在repo的根目录下尝试
ls-1 | grep-v^聚合数据/$| xargs-i git add{}
。这对我来说是有效的,但对这个
git add--.:希望它能帮助别人