剑客
关注科技互联网

强化你的git

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

pull模式使用rebase

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

强化你的git

配置:

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 ,结果会清晰许多:

强化你的git

美化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

git-extras

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

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

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址