目录

  • 忽略特殊文件及命令定制


忽略特殊文件及命令定制

在实际工作中,我们必须把某些文件放到git目录里,但是不能提交他们,但是每次使用git status时都会显示Untracked files ……,这样很不爽,尤其是有强迫症的同学,这时可以在git工作目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去git就会自动忽略这些文件,不需要从头自己编写.gitignore文件,github已经为我们提供了各种配置文件只需要组合一下就可以使用了。可以访问https://github.com/github/gitignore

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

git为了大家操作方便,还为大家提供了命令定制的功能,将一些常用的命令定制成简单的英文单词或者缩写,提高输入的销效率,比如:

$ git config --global alias.co checkout
$ git co dev
Switched to a new branch 'dev'
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

以上命令把checkout命令定义成了缩写co,这样执行git co dev,就相当于执行了git checkout dev,我们在前边执行查看版本历史的时候用到了命令$ git log --pretty=oneline --abbrev-commit,这个命令后边的参数太过难记,怎么办呢,有了命令定制就好伴了:

$ git config --global alias.lg "log --pretty=oneline --abbrev-commit"

先把log --pretty=oneline --abbrev-commit定制成lg,然后执行git lg:

$ git lg
18233d5 (HEAD -> master, tag: v1.0) test file add new
561ca86 (origin/master, origin/HEAD) add file test.txt
b0e2922 add file git1/git1.log
e1c4305 add dir git1
50bbda8 rm test.txt
d6b3450 add file test.txt
09dd2d4 aaaaaa
9ba73aa dddd
bf80d0d add midfi readme.txt
4757dea modif 'readme.txt' ,add file LICENSE
26d2b1f {readme.txt}
b88de02 {readme.txt} {add file if_for}
f63d6c1 add file hello.py
8ff01a6 add fun.py
457f80c append GPL
70e2010 wrote a readme file

如果想要删除定制的命令怎么办呢?通过配置文件来删除,定制命令时如果加了–global针对当前用户起作用,如果不加–global只对当前仓库起作用,每个仓库的配置文件都为.git/config,删除[alias]下的相应内容即可。

$ git config alias.bc branch
$ cat .git/config
[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = git@github.com:hyd861001/my_python.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[branch "dev"]
    remote = origin
    merge = refs/heads/dev
[alias]
    bc = branch

而用户的配置文件放在主目录下,为隐藏文件.gitconfig.

My@My-THINK MINGW64 ~
$ cat .gitconfig
[gui]
    recentrepo = E:/github
[user]
    name = hyd
    email = hydfreeman@163.com
[alias]
    co = checkout
    lg = log --pretty=oneline --abbrev-commit