自定义 Git
忽略特殊文件.gitingore
在windows下,不能直接输入.
扩展名,需要 Git Bash
工具使用 Unix 方式创建(vim .gitignore)。或者使用文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore
了。
Git 提供了一个全局的 .gitignore
,可以在用户目录下创建 ~/.gitignoreglobal
文件,以同样的规则来划定哪些文件是不需要版本控制的。需要执行 git config --global core.excludesfile ~/.gitignoreglobal
来使得它生效。
配置语法
?
:代表任意的一个字符*
:代表任意数目的字符{!ab}
:必须不是此类型{ab,bb,cx}
:代表ab、bb、cx中任一类型[abc]
:代表a、b、c中任一字符[^abc]
:代表必须不是a、b、c中任一字符/folder
:代表目录
示例:
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
*.py[co] # 忽略Python编译产生的.pyc、.pyo
如果修改了 .gitignore
文件,需要在仓库的根目录下运行如下命令再提交:
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
另外 git 还提供了另一种 exclude
的方式来做同样的事情,不同的是 .gitignore
这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude
这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人。也不会提交到版本库中去。
.gitignore
还有个有意思的小功能, 一个空的 .gitignore
文件可以当作是一个 placeholder
。当你需要为项目创建一个空的 log
目录时,这就变的很有用。 你可以创建一个 log
目录 在里面放置一个空的 .gitignore
文件。这样当你 clone
这个 repo 的时候 git 会自动的创建好一个空的 log
目录了。
可以用 git check-ignore
命令检查配置是否有问题:
git check-ignore -v app.class
## .gitignore:3:*.class app.class
配置别名
有没有经常敲错命令?比如 git status
?如果敲 git st
就表示 git status
那就简单多了。可以使用命令,告诉Git,以后 st
就表示status
:
$ git config --global alias.st status
还有别的命令可以简写:
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
--global
参数是全局参数,也就是这些命令在这台电脑的所有 Git 仓库下都有用。
配置一个 git last
,让其显示最后一次提交信息:
$ git config --global alias.last 'log -1'
配置文件
配置 Git 的时候,加上 --global
是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。配置文件放哪了?每个仓库的 Git 配置文件都放在 .git/config
文件中:
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = [email protected]:michaelliao/learngit.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[alias]
last = log -1
别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。而当前用户的 Git 配置文件放在用户主目录下的一个隐藏文件 .gitconfig
中:
$ cat .gitconfig
[alias]
co = checkout
ci = commit
br = branch
st = status
[user]
name = Your Name
email = [email protected]
配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置。