强化你的git

git是目前最流行的版本管理工具之一,日常开发中时时刻刻都在于git打交道,git原本已经足够强大,但是在命令行模式下,并不美观,这次介绍几个我积累的配置,强化你的git。


pull模式使用rebase

在你执行git pull 的时候,如果远程仓库已经有人提交了新的代码,那么git默认会进行merge,结果就是:

配置:

git config --global pull.rebase true

这样会将你本地的commit在远程仓库的基础上rebase,保持log为单一线,看上去清晰许多。但是这里有个问题,设置完rebase之后,执行pull就看不到本次pull涉及到哪些文件了,这个在后面的log中处理。


美化diff

当你要暂存&commit之前,看看你修改了哪些内容是个好习惯,执行git diff 命令,默认的输出格式比较难懂,我们可以美化一下,在~/.gitconfig 中添加如下alias:

[alias]
  d = "!f() { [ -z \"$GIT_PREFIX\" ] || cd \"$GIT_PREFIX\" && git diff --color \"$@\" | diff-so-fancy  | less --tabs=4 -    RFX; }; f"

然后执行git d 替代git diff ,结果会清晰许多:


美化log

查看提交日志是git中非常频繁的操作,但是默认的输出结果不太直观,继续添加alias:

[alias]
  lg1 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset)     %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
  lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(    bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
  lg = !"git lg1"

这样就可以使用git lg1git lg2 两个命令了,显示结果就是第一图中的样子,清晰了许多。另外在可以使用--name-status 参数,显示修改的文件,解决pull改为rebase方式后,看不到具体文件信息的问题:


git-extras

这个就不多说了,可以安装tj的git-extras,新增了很多命令可以用。


目前大概就这么多,后面有新的东西再更新。



标签: ,

无觅相关文章插件,快速提升流量