老师能否分享您的git命令缩写配置

老师能否分享您的git命令缩写配置

看视频,老师使用git操作都是用的缩写,例如git ll、git co feature...等,由于之前没用过git,所以没有什么经验,能不能给一份缩写的模板,也方便以后我也采取这种方式进行提高效率?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
张轩 2021-08-31 09:17:59

同学你好

在 .gitconfig 文件中添加如下的 alias。精心搜集了很多条命令

# alias {{{
[alias]
    # basic {{{
    st = status -s
    cl = clone
    ci = commit
    co = checkout
    br = branch
    r = reset
    cp = cherry-pick
    gr = grep -Ii
    # }}}
    # tweak defaults {{{
    diff = diff --word-diff
    branch = branch -ra
    grep = grep -Ii
    bra = branch -ra
    ai = add --interactive
    # grep on filename
    f = "!git ls-files | grep -i"
    # }}}
    # commit {{{
    cm = commit -m
    cma = commit -a -m
    ca = commit --amend
    amend = commit --amend
    caa = commit -a --amend -C HEAD
    # }}}
    # log commands {{{
    ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
    ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
    lc  = "!f() { git ll "$1"^.."$1"; }; f"
    lnc = log --pretty=format:"%h\\ %s\\ [%cn]"
    fl = log -u
    filelog = log -u
    # }}}
    # diff {{{
    d = diff --word-diff
    dc = diff --cached
    dd = difftool -t meld
    # diff last commit
    dlc = diff --cached HEAD^
    dr  = "!f() { git diff -w "$1"^.."$1"; }; f"
    diffr  = "!f() { git diff "$1"^.."$1"; }; f"
    # }}}
    # reset commands {{{
    r1 = reset HEAD^
    r2 = reset HEAD^^
    rh = reset --hard
    rh1 = reset HEAD^ --hard
    rh2 = reset HEAD^^ --hard
    # }}}
    # git svn {{{
    svnr = svn rebase
    svnd = svn dcommit
    svnl = svn log --oneline --show-commit
    # }}}
    # stash {{{
    sl = stash list
    sa = stash apply
    ss = stash save
    # }}}
    # assume aliases {{{
    assume = update-index --assume-unchanged
    unassume = update-index --no-assume-unchanged
    # show assumed files
    assumed = "!git ls-files -v | grep ^h | cut -c 3-"
    # unassume all the assumed files
    unassumeall = "!git assumed | xargs git update-index --no-assume-unchanged"
    assumeall = "!git status -s | awk {'print $2'} | xargs git assume"
    # }}}
    # subtree {{{
    #   add
    sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f"
    #   update/pull
    sbu = "!f() { git subtree pull --prefix $2 $1 master --squash; }; f"
    # }}}
    # various useful {{{
    # last tag created
    lasttag = describe --tags --abbrev=0
    lt = describe --tags --abbrev=0

    # conflict/merges
    ours = "!f() { git co --ours $@ && git add $@; }; f"
    theirs = "!f() { git co --theirs $@ && git add $@; }; f"

    #list remotes
    rem="!git config -l | grep remote.*url | tail -n +2"

    #apply patch from other local repo
    lap = "!f() { git --git-dir=$1 format-patch -k -1 --stdout $2 | git am -3 -k; }; f"

    #open markdown files edited in last commit
    last = "!gvim $(git show HEAD --format="" --name-only | grep -e .*md$ | xargs)"
    #open just created markdown in working directory
    newmd = "!gvim $(git status -s | awk {'print $2'})"

    # initial empty commit
    empty = "!git commit -am\"[empty] Initial commit\" --allow-empty"

    # list all aliases
    la = "!git config -l | grep alias | cut -c 7-"
    # }}}
    # convoluted aliases {{{
    # grep from root folder
    gra = "!f() { A=$(pwd) && TOPLEVEL=$(git rev-parse --show-toplevel) && cd $TOPLEVEL && git grep --full-name -In $1 | xargs -I{} echo $TOPLEVEL/{} && cd $A; }; f"
    #rename branch tree to done-
    done = "!f() { git branch | grep "$1" | cut -c 3- | grep -v done | xargs -I{} git branch -m {} done-{}; }; f"
    #add bitbucket remote
    ra = "!f() { git remote add $1 https://bitbucket.org/$2.git; }; f"
    # }}}
    # worktree list {{{
    wl = worktree list
    # }}}
# }}}


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师