Fork me on GitHub

After code
  • Geeker
  • Gamer
  • JS
  • C
  • Node
  • React
  • Hippop
  • TDD
That Is An Byte of Me

[afterCode] 我的3个 git tips

01 May 2017

这不是一篇关于 git 入门的文章,是我个人在使用 git 中觉得比较有用的3个小技巧,分享出来希望对大家有帮助.

自动纠错

使用 git 时候会不会经常碰到这样的情况,输错了命令,然后 git 还问你是你是不是这个意思啊?

$git configu
git: 'configu' is not a git command. See 'git --help'.

Did you mean this?
	config

很多情况下 git 都猜对了你们的命令, 为什么不让它在猜对的基础上直接让他执行呢? 如下配置

git config --global help.autocorrect  10

最后的数字表示 多少100ms 后自动纠正执行命令. 看你多信任 git 了, 我自己设置的是 1. 设置为0的话表示不自动纠正.

善用 alias

就像使用 shell 的时候你没个十七八个 alias 怎么和别人打招呼,git 也一样; 下面就是我的 alias 配置. 非常推荐 [st ,ci,ca,co ], 这些命令在开发的过程中会频繁的用到通过缩写可以节约不少时间; 还有就是这 lg 配置到你的 git 中去, 谁用谁知道.

$ git config --list | grep alias

alias.st=status
alias.ci=commit
alias.co=checkout
alias.dt=difftool
alias.lg=log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen%cr %C(bold blue)<%an>%Creset'
alias.ca=commit -a
alias.gi=grep -i

哦, 如何配置 alias

                                +- alias 的内容
                                |
git config --global alias.ca "commit -a"
                          | 
                          +- alias 的名字

这里的 --global选项会让这个 alias 在所有 git 项目中使用, 如果你的 home 目录下没有 .gitconfig文件的话可能还要自己新建一个; 如果不想全局生效就去掉这个选项.

搜索代码

我知道你们都会用 grep, 但如果在一个 node 项目中想搜索代码的时候,需要忽略node_modules下的文件; 如果你用了 babel 类似的东西编译过, 还要忽略 dist下的 js 文件. 那你可能会对 grep 配置一堆的 exclude-dir 的选项.为什么我会知道这么多,因为我也年轻过.

alias grep="grep --exclude-dir node_modules --exclude-dir .git"

显然这个不是一个正确的做法, 其实这些需要 exclude 的文件都是在 项目下通过.gitignore知道的一清二楚; 所以 git 内建了一个 grep 命令; 它和 gnu grep 使用完全一致,唯一的区别: 它只会对 git 项目下的内容进行搜索, .gitignore 中的忽略的内容是不算去搜索的. 结合上面的 alias 赶紧配置一个自己称手的 alias 吧

git grep -i express

所有项目下含有 express 的文件就都出现了. 结合 alias 可以配置一个 gi

git config --global alias.gi "grep -i"

希望对大家有帮助.

分享到: QQ空间 新浪微博 腾讯微博 微信 更多
comments powered by Disqus