Skip to content

自定义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已经准备了各种配置文件,只需要组合一下就可以使用了。

(2)忽略文件的原则

1.忽略操作系统自动生成的文件,比如缩略图等;

2.忽略编译生成的中间文件、可执行文件等

  • 也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库
  • 比如Java编译产生的.class文件;

3.忽略你自己的带有敏感信息的配置文件

  • 比如存放口令的配置文件。

(3)使用示例

假设你在Windows下进行Python开发,Windows会自动在有图片的目录下生成隐藏的缩略图文件,如果有自定义目录,目录下就会有Desktop.ini文件 - 因此你需要忽略Windows自动生成的垃圾文件:

# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
  • 然后,继续忽略Python编译产生的.pyc.pyodist等文件或目录:
# 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: wangshangjian