我需要使存储库中的文件不可读且不可写:
AS3D3A3
A3L3O3L3
当您列出它时,它看起来像这样:
sudo chmod 101 file1.sh
$ ls -la file1.sh
---x-----x 1 cardamom cardamom 13 Nov 16 16:52 file1.sh
不起作用:
git add
并将其添加到error: open("file1.sh"): Permission denied
error: unable to index file file1.sh
fatal: updating files failed
不会导致忽略它。
我确实不需要跟踪它,但是最好不要在每次输入.gitignore
时都弹出它。
如何将其添加到仓库中或告诉git忽略它?
答案 0 :(得分:2)
将其添加到.gitignore不会在正在跟踪它的修订版上起作用,因为已经对该文件进行了跟踪.....在删除(并提交)之后,它将在修订版上起作用。然后,如果您从文件中删除所有权限,您如何期望git能够使用它?它看不懂。因此,...如果您不介意历史文件然后消失,则可以将其删除(git rm --cached the-file
),将其添加到.gitignore,然后提交。对于从此版本开始开始的版本,该文件将不再显示要添加。但是,如果您选择检出以前的版本,则由于工作树中存在该文件,所以git表现得很好就不足为奇了。
答案 1 :(得分:2)
如何将其添加到仓库中或告诉git忽略它?
--assume-unchaged
提高此文件上的--assume-unchaged
标志,使其停止跟踪此文件上的更改
--[no-]assume-unchanged
指定此标志时,为路径记录的对象名称不会更新。
相反,此选项设置/取消设置路径的
assume unchanged
位。当
assume unchanged
位为 on 时,用户承诺不更改文件,并允许Git假定工作树文件与索引中记录的文件匹配。如果要更改工作树文件,则需要取消设置该位以告知Git。当在lstat(2)系统调用非常慢的文件系统(例如cifs)上处理大型项目时,这有时会很有帮助。如果需要修改索引中的该文件,Git将失败(正常)。合并提交时;因此,如果假定未跟踪的文件在上游进行了更改,则需要手动处理这种情况。