如何告诉git忽略以波浪号开头的文件?

10

我的文本编辑器会创建以波浪线开头的交换文件。我不小心将其中一个文件提交到了git。我该如何告诉git忽略项目树中任何类似于这样的文件?

所以我遇到了这个问题。

/folder/another/file.txt
/folder/another/~file.txt

我希望~file.txt被Git忽略。


3
你试过最明显的方法了吗?在.gitignore文件中添加 ~* - Daniel Hilgarth
3个回答

16

只需使用 .gitignore 文件:

echo '~*' >> .gitignore

或者,您还可以将此行写入.git/info/exclude,这是一个项目范围的本地忽略文件(显然无法像.gitignore一样进行检查)。


看起来可以工作。我原以为.gitignore文件只适用于根目录。但是这似乎会导致忽略文件树中任何地方的这些文件。 - Stephen Ostermiller
@StephenOstermiller:它适用于它所在的目录(以及其中的任何目录)。因此,/folder/a/.gitignore 不会影响 /folder/b/ 下面的任何内容,但它会影响 /folder/a/sub/file.txt - bitmask
根据 https://dev59.com/xE_Ta4cB1Zd3GeqPFfus 来看,我需要在其他规则前面添加一个斜杠,因为我希望它们只适用于顶层目录而不是递归的。 - Stephen Ostermiller
1
@StephenOstermiller:是的,我没有从你的原始帖子中得到这个信息。 - bitmask
不,直到看到你的回答我才意识到这就是gitignore的工作方式。我相信这与cvsignore和subversion忽略的方式有所不同。 - Stephen Ostermiller

3
echo '~*' >> .gitignore

这将添加所需的条目。

否则,请手动编辑.gitignore文件,并在新行上添加~*


0
  1. 首先检查git是否将您的文件添加到跟踪文件中。

    git status

是的?那么从git中删除该文件或文件夹。

git rm --cached <file-name> or git rm -r --cached <folder-name>

然后,在.gitignore文件中追加以下模式(星号“*”匹配除斜杠以外的任何内容)。

echo '.~*' >> .gitignore

就这些啦!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接