.gitignore
Posted clark1990
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.gitignore相关的知识,希望对你有一定的参考价值。
Git是跟踪项目中所有文件的好工具,但是,您会希望在项目的整个生命周期中不要跟踪某些文件及其变更。例如:
- 系统文件(i.e. Mac系统的.Ds_Store)
- 应用程序配置文件(i.e. app.config, .env)
- 构建组件(i.e. *.pyc)
- 安装的依赖(i.e. node_modules)
- 个人文件(i.e. todo.txt)
- 应用程序数据和日志(i.e. .log,.sqlite)
Git 中 gitignore
概念:以.gitignore
文件定义哪些文件将被 Git 排除跟踪, 被.gitignore
匹配到的文件将不会显示在 Git 的Untracked files
列表。
使用.gitignore防止跟踪文件
.gitignore
文件控制 Git 仓库中应排除跟踪的文件(可由文件类型、路径、通配符等确立)。你和你的团队可以随时更新这个文件来控制忽略哪种类型的文件。
创建.gitignore文件
- Visual Studio
使用VS为项目创建(或连接)代码仓库时,Visual Studio 自动在仓库中创建.gitignore
文件。 - 下载
.gitignore
模板
从 https://github.com/github/gitignore 下载特定项目类型的`.gitignore文件模板,修改以充分适配你的项目。
Git 将.gitignore
应用于文件夹及其子文件夹,建议您将.gitignore
放在存储库的根文件夹中,以免造成混淆。
实践中有时会在项目子目录嵌套定义.gitignore文件, 虽然不常见,但对于有特定规则的子目录,嵌套定义.gitignore文件有用。
自定义.gitignore
只要你修改了.gitignore
文件,Git 立即开始忽略这些文件;如果你希望团队成员都忽略相同的文件,请提交这次 git 变更。
.gitignore
中的每一行都排除一个文件或一组(与模式匹配的)文件, .gitignore
语法很灵活:
# ignore a single file
mycode.class
# ignore an entire directory
/mydebugdir/
# ignore a file type
*.json
# add an exception (using !) to the preceding rule to track a specific file
!package.json
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
Windows 使用者注意:.gitignore 文件中的路径使用正斜杠分隔符,而不是反斜杠
忽略已提交文件中的变化
临时忽略变更
在开发阶段,有时候需要临时忽略本地仓库中已提交的文件的变更。例如,你的配置文件与本机的工作环境或者项目配置有关,那么这个操作就非常有用:
git update-index --skip-worktree <file>
- 1
当然也可以恢复文件的追踪:
git update-index --no-skip-worktree <file>
- 1
也可以通过以下方式进行。这主要是为了防止文件被开发者修改。
关闭变更追踪:
git update-index --assume-unchanged <file>
- 1
恢复变更追踪:
git update-index --no-assume-unchanged <file>
- 1
永久忽略文件变更
如果一个文件已经被 Git 跟踪,那么再将这个文件添加到 .gitignore
中并不会忽略文件变更。你还需要从Git 暂存区(index)中移除这个文件的信息,步骤如下:
- 在
.gitignore
中添加这个文件 - 从暂存区移除文件信息:
git rm --cached <file>
- 1
- 提交删除文件和更新的
.gitignore
到您的仓库
注:以上步骤不会从系统中删除文件,只是告诉Git以后忽略该文件的变更
仅在个人系统中忽略文件
.gitignore
文件被提交并推送之后,就会在团队共享。若只想在你的系统上排除文件,请编辑本地仓库中的.git/info/exclude
文件, 修改这个文件不会共享给其他人,这个动作只对此本地仓库有效。
在个人系统中忽略所有仓库的特定文件
利用git config
命令建立全局.gitignore
文件:
git config core.excludesfile C:\\Users\\frank\\.gitignore_global
- 1
这个命令帮助你忽略所有的绝不会提交的文件类型,比如编译文件。
参考文献
以上是关于.gitignore的主要内容,如果未能解决你的问题,请参考以下文章