如何在Git中忽略已存在的文件?

13

我需要在本地和Git上处理file.txt,但内容不同。 我希望Git不要告诉我该文件已被更改。

这种情况是可能的吗?


1
可能是提交机器特定配置文件的重复问题。 - Senseful
7个回答

18

实际上,你需要使用--skip-worktree而不是--assume-unchanged这里有一个很好的解释

所以执行git update-index --skip-worktree file.txt

简而言之,--assume-unchanged用于提高性能,适用于不会更改的文件(例如SDK);--skip-worktree用于远程存在但您希望进行本地(未跟踪)更改的文件。


1
请在你的回答中添加完整的命令 (git update-index ...);我们中有些人是真正的 Git 新手,我不得不阅读 @janos 的回答来补充你的 ;) - Nicolas Miari
谢谢解释。 :) - bucabay

11

也许你希望在文件实际上已经改变的情况下“假装”它没有改变?你可以像这样做:

git update-index --assume-unchanged file.txt

要稍后撤消此操作:

git update-index --no-assume-unchanged file.txt

查看标记为此方式的文件列表:

git ls-files -v | grep '^[a-z]'

更新

正如评论所指出的,这很可能不是你想要做的事情。 更好的答案已经由@Tom Auger发布,请使用那个答案。


2
如果不能修改.gitignore文件(因为它已经被提交到git中),考虑使用.git/info/exclude

1

SOURCETREE 终端代码

添加忽略文件:

git update-index --skip-worktree index.php

提取忽略文件:
git update-index --no-skip-worktree index.php

列出忽略的文件:

git ls-files . --ignored --exclude-standard --others

对我来说是个好答案,因为我正在使用SourceTree。这对我有用。 - pixelmeow

1

1

enter image description here enter image description here

你只需要在Sourcetree中,点击文件名右侧的“more”按钮,在未暂存文件区域中,点击“ignore”,然后让Sourcetree为该文件或所有相同类型的文件执行所需操作。请注意保留HTML标签。

0
在Eclipse Luna中,可以通过以下步骤完成此操作[使用EGit插件]: 右键单击文件->团队->高级->假定未更改。

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