当前位置:  开发笔记 > 开发工具 > 正文

如何在不使用.gitignore的情况下让Git忽略文件?

如何解决《如何在不使用.gitignore的情况下让Git忽略文件?》经验,为你挑选了3个好方法。

由于外部奇怪的约束,我无法修改.gitignore我的存储库.有没有办法忽略文件​​和目录,而不是修改.gitignore?即使它是全局配置的全局解决方案,也将应用于我的所有存储库.



1> VonC..:

根据gitignore的说法,不要忘记Git认为不同的"忽略模式源"中存在优先顺序:

从命令行读取的模式用于支持它们的那些命令.

从与路径相同的目录中的.gitignore文件读取的模式,或在任何父目录中读取的模式,较高级别文件(直到根目录)中的模式被较低级别文件中的模式覆盖到包含该文件的目录.

模式读取$GIT_DIR/info/exclude.

模式从配置变量指定的文件中读取core.excludesfile.

最后两个可以解决您的问题但是:

它们不会被复制到远程存储库中

他们可以让他们的模式被其他来源所覆盖

(另见这个问题)


另外两个解决方案涉及更新索引(git update-index):

git update-index --assume-unchanged:请参阅" Git:仅在本地仓库中删除文件并将其保存在远程仓库中 ".Elijah Lynn在评论中
提到了这一点.

您甚至可以忽略文件夹内容:" git update-index --assume-unchanged在目录上 ".

使用--no-assume-unchange扭转效果:请参阅" 是否可以git add当前保护的文件assume-unchanged? ".

但是,当您签出另一个分支或您时git pull,可能会重置"忽略"状态.因此另一种选择:

git update-index --skip-worktree; 看到:

" 忽略我在文件中的更改,但不要从远程代表中删除它们 "和

" 在分支机构检查之间保留git --assume-unchanged文件 ".

两者之间的区别在" Git - assume-unchanged'和' skip-worktree' 之间的区别"中解释.



2> Ólafur Waage..:

如果你可以修改,.git/info/exclude你可以在那里使用相同的规则.但该文件仅在您的本地仓库中.


@yourfriendzak子模块的`.git`文件夹实际上是`parent_repo/.git/modules/submodule_name`.所以你要编辑`parent_repo/.git/modules/submodule_name/info/exclude`

3> Ferdinand Be..:

有三种方法可以告诉GIT要忽略哪些文件:

.gitignore文件

$ GIT_DIR/git的/信息/排除

通过.gitignore设置指向的文件

后两点可以解决你的问题.

有关详细信息,请参阅gitignore(5).

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有