添加 *,但兄弟姐妹被忽略
Add *, but sibling is being ignored
我在目录中进行了一系列更新并想添加它们,但它们位于我的 .gitignore 中的目录旁边。难道 git add
不应该只是 忽略 而不是抱怨吗?
如何添加所有内容并跳过被忽略的内容?
$ git add assets/*
The following paths are ignored by one of your .gitignore files:
assets/avatars
Use -f if you really want to add them.
fatal: no files added
根据 documentation,--ignore-errors
标志只会让命令按照您的意愿工作。
If some files could not be added because of errors indexing them, do not abort the operation, but continue adding the
others. The command shall still exit with non-zero status. The
configuration variable add.ignoreErrors can be set to true to make
this the default behaviour.
更新:
这在这种情况下不起作用,我猜是因为 assets/*
参数被 shell 扩展,因此 git add
接收的实际参数是扩展列表文件和目录等失败是明确的。
我试过这个命令,效果不错:
$ git add assets
即使没有选项 --ignore-errors
也能正常工作,因为它不会尝试在 assets
.
下面添加被忽略的目录
当您使用通配符 *
时,它会在 Unix 系统上被您的 shell 扩展。因此,运行 git add assets/*
相当于在 assets/avatars
.
下显式添加文件
例如,如果我有两个文件:
assets/file1.txt
assets/avatars/file2.txt
则运行git add assets/*
扩展为:
git add assets/file1.txt assets/avatars/file2.txt
所以 git 抱怨你在指示它添加一个被忽略的文件。如果您想避免此消息,您可以引用 *
以允许 git 进行通配。这将指示 git 扩展您的路径,注意 .gitignore
文件。例如:
git add assets/\*
不产生警告,只暂存适当的文件,在这个例子中,assets/file1.txt
。
我在目录中进行了一系列更新并想添加它们,但它们位于我的 .gitignore 中的目录旁边。难道 git add
不应该只是 忽略 而不是抱怨吗?
如何添加所有内容并跳过被忽略的内容?
$ git add assets/*
The following paths are ignored by one of your .gitignore files:
assets/avatars
Use -f if you really want to add them.
fatal: no files added
根据 documentation,--ignore-errors
标志只会让命令按照您的意愿工作。
If some files could not be added because of errors indexing them, do not abort the operation, but continue adding the others. The command shall still exit with non-zero status. The configuration variable add.ignoreErrors can be set to true to make this the default behaviour.
更新:
这在这种情况下不起作用,我猜是因为 assets/*
参数被 shell 扩展,因此 git add
接收的实际参数是扩展列表文件和目录等失败是明确的。
我试过这个命令,效果不错:
$ git add assets
即使没有选项 --ignore-errors
也能正常工作,因为它不会尝试在 assets
.
当您使用通配符 *
时,它会在 Unix 系统上被您的 shell 扩展。因此,运行 git add assets/*
相当于在 assets/avatars
.
例如,如果我有两个文件:
assets/file1.txt
assets/avatars/file2.txt
则运行git add assets/*
扩展为:
git add assets/file1.txt assets/avatars/file2.txt
所以 git 抱怨你在指示它添加一个被忽略的文件。如果您想避免此消息,您可以引用 *
以允许 git 进行通配。这将指示 git 扩展您的路径,注意 .gitignore
文件。例如:
git add assets/\*
不产生警告,只暂存适当的文件,在这个例子中,assets/file1.txt
。