Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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
如何在gitignore中忽略某些特殊文件?_Git - Fatal编程技术网

如何在gitignore中忽略某些特殊文件?

如何在gitignore中忽略某些特殊文件?,git,Git,我想忽略.gitignore中的一些特殊文件。例如symTbl.c,编译器将生成一些此类文件,它们位于不同的子目录中。 同时我需要接受所有其他的.c文件 因此,我的.gitignore将如下所示: * !*/ !*.c symTbl.c 但是symTbl.c仍然不能被忽略。 那怎么办?谢谢 注意: 我还有一些不应该被跟踪的文件,例如lzs.bin。。。所以我需要先忽略*然后使用!*。c跟踪*.c。通过这样做,我不能简单地将symTbl.c放在.gitignore中。您需要将 symTbl.c

我想忽略.gitignore中的一些特殊文件。例如symTbl.c,编译器将生成一些此类文件,它们位于不同的子目录中。 同时我需要接受所有其他的.c文件

因此,我的.gitignore将如下所示:

*
!*/
!*.c
symTbl.c
但是symTbl.c仍然不能被忽略。 那怎么办?谢谢

注意: 我还有一些不应该被跟踪的文件,例如lzs.bin。。。所以我需要先忽略*然后使用!*。c跟踪*.c。通过这样做,我不能简单地将symTbl.c放在.gitignore中。

您需要将

symTbl.c
在项目根目录中的
.gitignore
文件中。无法忽略已跟踪的文件。如果您已经提交了一个,请使用
git ls files | grep symTbl.c
检查并删除它(
git ls files | grep symTbl.c | xargs-d'\n'rm
直接删除它们)

编辑

我做了一个新的回购,把这些文件放进去了

# show all files, excluding those in the .git directory
$ tree -a -I .git
.
├── bla.bin
├── bla.c
├── foo
│   ├── bla.bin
│   ├── bla.c
│   └── symTbl.c
├── .gitignore
└── symTbl.c

1 directory, 7 files
My.gitignore包含您拥有的内容:

$ cat .gitignore
*
!*/
!*.c
symTbl.c
然后运行
git add.
刚刚在根目录和
foo/
目录中添加了不同的
bla.c
文件:

$ git add .
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   bla.c
#   new file:   foo/bla.c
#
$git add。
$git状态
#论分行行长
#
#初始提交
#
#要提交的更改:
#(使用“git rm--cached…”取消存储)
#
#新文件:bla.c
#新文件:foo/bla.c
#

那么您可能已经提交了
symTbl.c
文件了?如果是这样的话,
git rm
它们将被正确地忽略。

请查看我的主要帖子,进一步解释我的情况,谢谢你的帮助!如果已跟踪这些文件,则不能忽略它们。你确定这不是你的问题吗?尝试
git rm-r--cached.
然后
git add-A
。看看这些文件现在是否未被追踪。非常感谢!也谢谢@AdamKDean!你是对的。密钥应该是
git-rm
git-rm-r--cached。
您确定不能忽略需要忽略的文件,而不是尝试忽略.c以外的所有文件吗?如果有太多,或者他们没有遵循好的模式,你也可以考虑。