自定义Git¶
1.忽略特殊文件¶
(1)基本介绍¶
有些时候,你**必须把某些文件放到Git工作目录中,但又不能提交它们** - 比如保存了数据库密码的配置文件啦,等等, - 但每次git status,都会显示Untracked files ...,有强迫症的童鞋心里肯定不爽。
好在Git考虑到了大家的感受,这个问题解决起来也很简单:
-
1.在Git工作区的根目录下,创建一个特殊的
.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件 -
2.
.gitignore文件放在哪个目录下,就对哪个目录(包括子目录)起作用。
myproject <- Git仓库根目录
├── .gitigore <- 针对整个仓库生效的.gitignore
├── LICENSE
├── README.md
├── docs
│ └── .gitigore <- 仅针对docs目录生效的.gitignore
└── source
注意:
1..gitignore文件本身应该提交给Git管理,这样可以确保所有人在同一项目下都使用相同的.gitignore文件
2.不需要从头写.gitignore文件,GitHub已经准备了各种配置文件,只需要组合一下就可以使用了。
- 所有配置文件可以直接在线浏览:GitHub/gitignore
- 可以通过GitIgnore Online Generator在线生成
.gitignore文件并直接下载。
(2)忽略文件的原则¶
1.忽略操作系统自动生成的文件,比如缩略图等;
2.忽略编译生成的中间文件、可执行文件等
- 也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库
- 比如Java编译产生的
.class文件;
3.忽略你自己的带有敏感信息的配置文件
- 比如存放口令的配置文件。
(3)使用示例¶
假设你在Windows下进行Python开发,Windows会自动在有图片的目录下生成隐藏的缩略图文件,如果有自定义目录,目录下就会有Desktop.ini文件 - 因此你需要忽略Windows自动生成的垃圾文件:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
- 然后,继续忽略Python编译产生的
.pyc、.pyo、dist等文件或目录:
# Python:
*.py[cod]
*.so # # 排除所有.so结尾的文件:
*.egg
*.egg-info
dist
build
- 加上你自己定义的文件,最终得到一个完整的
.gitignore文件,内容如下:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
- 最后一步,就是把
.gitignore也提交到Git,就完成了! - 当然,检验
.gitignore的标准,是git status命令后,有没有working directory clean。
小结
- 忽略某些文件时,需要编写
.gitignore; .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
2.配置文件¶
(1)配置文件¶
1.配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
2.配置文件放哪了?每个仓库的Git配置文件,都放在.git/config文件中
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:michaelliao/learngit.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
3.而**当前用户的Git配置文件**,放在 **用户主目录下的隐藏文件.gitconfig**中
- 这个文件是全局配置文件 ,对当前用户的所有 Git 仓库都有效
- 1.可以通过运行
git config --global <key> <value>命令来配置或修改设置 - 2.也可以直接进入
.gitconfig配置文件中进行修改 - 所以,在项目中:
- 加
--global实际上是对家目录下的.gitconfig文件进行配置 -> 对当前用户的所有 Git 仓库生效 - 不加
--global,是对当前项目中的.git/config文件进行配置 -> 只对当前项目生效 - 如果配置错了:
- 可以直接删掉配置文件,重新通过命令配置
- 也可以直接删掉配置文件中,错误的那一行。
$ cd ~
$ ls -al | grep '.git'
-rw-r--r-- 1 Administrator 197121 97 Sep 15 16:31 .gitconfig
$ cat .gitconfig
[user]
name = Your Name
email = your@email.com
(2)查看Git配置¶
# 查看当前项目的git配置
git config --list
# 查看当前用户的 Git 全局配置
git config --global --list
本站总访问量 次
Authors: