zoukankan      html  css  js  c++  java
  • 配置一个高效快速的Git环境

    可以直接修改~/.gitconfig文件,也可以用命令配置一个可以实际使用的高效的Git环境。

    username and email

    这两项是必须的。

    git config --global user.name gituser
    git config --global user.email email@git.com
    

    or

    [user]
        name = gituser
        email = email@git.com
    

    editor

    git config --global core.editor "code -n -w"
    

    or

    [core]
        editor = /usr/bin/code -n -w 
    

    指定外部编辑器用于编辑多行commit,比如vscode。

    • -n(new)打开新窗口编辑commit
    • -w(wait)使git等待用户退出编辑器后才继续执行,以免执行git commit之后出现Aborting commit due to empty commit message.的错误

    difftool and mergetool

    using meld, for ubuntu:

    sudo apt install meld
    
    git config --global diff.tool meld
    git config --global merge.tool meld
    git config --global mergetool.keepBackup false
    

    or

    [diff]
        tool = meld
    [merge]
        tool = meld
    [mergetool]
        keepBackup = false
    
    • keepBackup = false成功合并后可以自动删除备份文件。

    alias

    Git命令别名,更高效更快速更专业...a-ha......

    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global alias.ci commit
    git config --global alias.st "status --short"
    
    • co作为checkout的别名,以此类推
    • st作为status --short的别名,输出信息更精简(虽然不符合linux命令越短事越大的风格)

    配置文件如下:

    [alias]
        br = branch
        brd = branch -d
        ck = checkout
        ckb = checkout -b
        ckf = checkout --
        cm = commit
        cmm = commit -m
        df = diff
        lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
        last = log -1 HEAD
        mg = merge
        ss = stash
        st = status --short
        stt = status
        unstage = reset HEAD --
    

    进一步,在linux的别名文件~/.bash_aliases中定义如下别名,这样可以更快的执行命令:

    # git
    alias gg='gitg'             # gitg
    alias gadd='git add'
    alias gbr='git br'          # branch
    alias gbrd='git brd'        # branch -d
    alias gck='git ck'          # checkout
    alias gckb='git ckb'        # checkout -b
    alias gckf='git ckf'        # checkout --
    alias gcm='git cm'          # commit
    alias gcmm='git cmm'        # commit -m
    alias gdf='git df'          # diff
    alias gdfa='git diffall'    # git-diffall
    alias gdfah='git diffall HEAD'    # git-diffall
    alias gdfal='git diffall HEAD HEAD^1'
    alias glg='git lg'          # colorful oneline git log
    alias glast='git last'      # log -1
    alias gmg='git mg'          # merge
    alias gss='git ss'          # stash
    alias gst='git st'          # status --short
    alias gstt='git stt'        # status
    
  • 相关阅读:
    Python 压缩图片至指定大小
    nginx 服务器自签https协议 (Let’s Encrypt)
    Django 批量创建app
    常见的设计模式(python )———适配器模式
    带你完全理解Python中的metaclass,type,class之间的恩怨情仇...
    常见的设计模式(python)———单例模式(转载)
    常见的设计模式(python)———工厂模式
    常见的设计模型(python)——建造者模型
    Django-restframework 概述及目录
    Java多线程开发
  • 原文地址:https://www.cnblogs.com/whenyd/p/7785483.html
Copyright © 2011-2022 走看看