由于项目有其他维护人,部分文件夹经常会有改动,但又不必要推送至其他人。
如果不渴望改变 .gitignore 文件,但在本地渴望忽略某个文件夹(例如 Media/),可以使用 Git 的本地排除选项,或者在提交时手动指定忽略特定文件或文件夹。
以下是几种方法:
方法 1:使用 .git/info/exclude
- 导航到 Git 仓库的 .git 目录。
- 找到 info 目录并打开 exclude 文件。如果 exclude 文件不存在,可以新建一个。
- 在该文件中添加忽略规则,与 .gitignore 的格式相同,例如项目文件夹下:
- 保存并关闭 exclude 文件。
.git/info/exclude 文件的作用类似于 .gitignore,但只对本地仓库有用,不会被提交到远程仓库。
留意:
如果远程仓库中的 Media/ 文件夹有更新,这些更新仍然会被 git pull 拉取到本地仓库中,.git/info/exclude 只是在提交改动时不会包含这个文件夹。
笔者最终选择了该方式,但如果远程仓库中 Media/ 文件夹有更新,而本地也有未提交的更改,那么在实行 git pull 时可能会遇到合并辩说,必要根据环境办理这些辩说。
方法 2:使用全局 .gitignore
- 创建一个全局 .gitignore 文件,例如在用户目录下。
- 在全局 .gitignore 文件中添加渴望忽略的规则:
- 通过 Git 配置将该文件设置为全局忽略文件:
- git config --global core.excludesfile '~/.gitignore_global'
复制代码 这个方法将应用于系统上全部的 Git 仓库,除非它们有本身的 .gitignore 文件中的具体规则。
方法 3:在提交时手动排除
如果只是偶然必要忽略 Media/ 文件夹,而且不想更改任何忽略文件,可以在添加暂存区时选择性地排除文件夹:
- 使用 git add -A 添加全部改动,但在提交前取消暂存 Media/ 文件夹:
- 然后实行提交操纵。
方法 4:使用 Git 钩子
- 创建一个 pre-commit 钩子,在每次提交之前主动排除 Media/ 文件夹。
- 编辑 .git/hooks/pre-commit 文件,并添加排除 Media/ 文件夹的脚本逻辑。
请记着,使用 Git 钩子的方法较为高级,可能必要编写主动化脚原来实现。
方法 5:使用 Git 指令
- 在终端中切换到项目目录,然后运行以下下令:
- git update-index --assume-unchanged Media/*
复制代码 这个下令会让Git忽略Media/文件夹下全部文件的更改。如果以后想要让Git再次跟踪这些文件,可以使用--no-assume-unchanged选项:
- git update-index --no-assume-unchanged Media/*
复制代码 留意,这个下令只影响本地的Git仓库,不会影响其他人的仓库。
总结
在多人协作的项目中,通常最好是通过沟通来确定一个公共承认的 .gitignore 规则。本文大部分是用于本地排除只定文件夹。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |