赞
踩
由于项目有其他维护人,部分文件夹经常会有改动,但又不需要推送至其他人。
如果不希望改变 .gitignore
文件,但在本地希望忽略某个文件夹(例如 Media/
),可以使用 Git 的本地排除选项,或者在提交时手动指定忽略特定文件或文件夹。
以下是几种方法:
.git/info/exclude
.git
目录。info
目录并打开 exclude
文件。如果 exclude
文件不存在,可以新建一个。.gitignore
的格式相同,例如项目文件夹下: Media/DisplayOutput/
exclude
文件。.git/info/exclude
文件的作用类似于 .gitignore
,但只对本地仓库有效,不会被提交到远程仓库。
注意:
如果远程仓库中的 Media/
文件夹有更新,这些更新仍然会被 git pull
拉取到本地仓库中,.git/info/exclude
只是在提交改动时不会包含这个文件夹。
笔者最终选择了该方式,但如果远程仓库中 Media/
文件夹有更新,而本地也有未提交的更改,那么在执行 git pull
时可能会遇到合并冲突,需要根据情况解决这些冲突。
.gitignore
.gitignore
文件,例如在用户目录下。.gitignore
文件中添加希望忽略的规则: Media/DisplayOutput/
git config --global core.excludesfile '~/.gitignore_global'
这个方法将应用于系统上所有的 Git 仓库,除非它们有自己的 .gitignore
文件中的具体规则。
如果只是偶尔需要忽略 Media/
文件夹,并且不想更改任何忽略文件,可以在添加暂存区时选择性地排除文件夹:
git add -A
添加所有改动,但在提交前取消暂存 Media/
文件夹: git reset HEAD Media/
Media/
文件夹。.git/hooks/pre-commit
文件,并添加排除 Media/
文件夹的脚本逻辑。请记住,使用 Git 钩子的方法较为高级,可能需要编写自动化脚本来实现。
在终端中切换到项目目录,然后运行以下命令:
git update-index --assume-unchanged Media/*
这个命令会让Git忽略Media/
文件夹下所有文件的更改。如果以后想要让Git再次跟踪这些文件,可以使用--no-assume-unchanged
选项:
git update-index --no-assume-unchanged Media/*
注意,这个命令只影响本地的Git仓库,不会影响其他人的仓库。
在多人协作的项目中,通常最好是通过沟通来确定一个公共认可的 .gitignore
规则。本文大部分是用于本地排除只定文件夹。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。