Git 全局配置忽略文件, 换行符与空白指南

Git 在项目库的 .gitignore 文件里来定义无须纳入版本库的文件, 这样就不会出现在未跟踪的列表中, 也不会在你运行 git add 的时候被暂存但是如果你想定义一个全局的忽略文件的话, 这样就不用把你经常想忽略的文件不小心纳入版本库

所以就要配置一下全局配置 使用 core.excludesfile

$ git config –global core.excludesfile ~/.gitignore_global

然后 touch 一个 ~/.gitignore_global 文件

这样全局忽略配置就生效了

下面是我的忽略配置

换行符格式化问题的全局配置

在跨平台协作的时候, 每个开发人员用不同的编辑器, 在修改同一个文件的时候, 可能在行尾加入了回车换行符,但是由于各个平台的换行符都是不一样的,难免有时候在编辑器中也忘了给定某种换行符,这些细微的变化不经意就进入提交的代码中

所以 Git 的一些配置选项可以帮助解决类似问题

Linux 和 Mac 系统使用LF作为行结束符, 所以默认不用转换, 当以CRLF为结束的文件出现在你的代码中时候, 你想修正过来, 用 core.autocrlf 来修复此问题, 把值设置为input, Git 在提交时会把CRLF转换成 LF ,注意在获取代码时候是不转换的

$ git config –global core.autocrlf input

windows系统的配置就应该是 true, 这样配置就会提交时候把结束符CRLF转换成LF, 但是实际你修改代码的时候还是CRLF

$ git config –global core.autocrlf true

当然还有一种情况是,你的团队都只在windows系统中开发 可以设置false 取消此功能

$ git config –global core.autocrlf false

空白符的全局配置

Git 对空白符的处理其实默认已经打开的2个选项是 trailing-space 和 space-before-tab

trailing-space 会查找每行结尾的空格

space-before-tab 会查找每行开头的制表符前的空格。

默认被关闭的2个选项是 indent-with-non-tab 和 cr-at-eol

indent-with-non-tab 会查找8个以上空格(非制表符)开头的行

cr-at-eol 让 Git 知道行尾回车符是合法的。

core.whitespace 来打开除了 cr-at-eol 的选项

$ git config –global core.whitespace trailing-space,space-before-tab,indent-with-non-tab

Emacs like textmate goto symbol function

有时候用Emacs 的时候,需要快速定位到此文件的某个方法,后来再emacswiki上看到了几种实现,我感觉用ido-mode来实现是最适合我的,所以我把代码贴出来,另外默认按键设置成了F8

下面的代码放在init.el中, eval-buffer 下 init.el 就可以使用了