GIT私人定制

39次阅读

共计 1175 个字符,预计需要花费 3 分钟才能阅读完成。

和 Shell 中的 alias 一样,git 的 alias 可以用来简化命令的输入,一起搞事情。

如果你希望使用 git c -m 来替换 git commit -m,或者使用git s 来替换git status,改如何完成?

git config --global alias.c "commit"
git config --global alias.s "status"

相关的配置会保存到 ~/.gitconfig

[alias]
        c = commit
        s = status

更棒的是,你可以使用 alias 来完成一些复杂的任务。

例如:我们经常需要将 origin/master 的最新更改 rebase 到自己的分支中,可以如下配置

git config --global alias.fr '!git fetch && git rebase -i origin/master'

> git fr

!的作用是,在这个 repository 的根目录中执行该命令
因此,你可以在这个 repo 的任何一个目录中执行git fr

有一些我觉得不错的 alias,可以给大家参考

git config --global alias.amend "commit — amend"
git config --global alias.g "grep"
git config --global alias.master "checkout master"
git config --global alias.pushf "push --force-with-lease"
git config --global alias.path rev-parse --show-toplevel 

# 几种格式化的 log
git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]'--graph --date=short"
git config --global alias.standup !git log --all --no-merges --graph --date=relative --committer=$(git config --get user.email) --pretty=format:'%C(cyan) %ad %C(yellow)%h %Creset %s %Cgreen%d' --since=$(if [[ Mon == $(date +%a) ]]; then echo last friday; else echo yesterday; fi) 
git config --global alias.today log --pretty=format:"%Cred%h %Cgreen%cd%Creset | %s%C(auto)%d %Cgreen[%an]%Creset" --date=local --since=midnight 

Last one: Special one

git config — global alias.fxxk reset --hard

正文完
 0