<root> / gitconfig (cbe4969399a1ff2c9ebcc27e1bc686b39109db7f) (2,323B) (mode 100644) [raw]
[init]
    defaultBranch = master

[core]
    # make tabulation character visible in diffs
    pager = sed 's/\t/.       /g' | less -R

[alias]
    cp = cherry-pick
    cpa = cherry-pick --abort
    cpc = cherry-pick --continue
    cps = cherry-pick --skip
    cpn = cherry-pick -n

    rb = rebase
    rbi = rebase --interactive
    rba = rebase --abort
    rbc = rebase --continue
    rbe = rebase --edit-todo
    rbs = rebase --skip
    rbh = rebase --show

    co = checkout
    cob = checkout -b
    ci = commit -v
    st = status
    df = diff
    dfw = diff -w
    br = branch
    bra = branch -a
    brd = branch -d
    brdd = branch -D
    hist = log --pretty=format:\"%C(yellow)%h%Creset %C(white)%ad%Creset  %Cgreen%s%Creset%Cred%d%Creset %C(cyan)<by %aN>%Creset\" --graph --date=short
    type = cat-file -t
    dump = cat-file -p
    remotes = !git remote -v | awk 'NR%2 { print $1, $2 }' | column -t
    droptill = reset --hard
    droplast = reset --hard HEAD^
    unstage = reset --mixed HEAD
    amend = commit -v --amend
    append = commit -v --amend -C HEAD
    fix = !vim $(git-ls-files --unmerged | cut -f2 | uniq)
    pend = log origin/master..HEAD
    # to be used if upstream suddenly renamed master branch
    enslave = !run() { \n\
        remote=${1:-origin}";" \n\
        if [ -z \"$remote\" ]";" then \n\
            echo 'error: remote name must be provided as an argument' \n\
            return 1 \n\
        fi \n\
        if [ -n \"$2$3$4$5\" ]\n then \n\
            echo 'error: expected only one argument' \n\
            return 1 \n\
        fi \n\
        git config --local --add \"remote.$remote.fetch\" \"+refs/heads/main:refs/remotes/$remote/master\" \n\
        git config --local --add \"remote.$remote.push\" refs/heads/master:refs/heads/main \n\
        git config --local branch.master.merge refs/heads/main \n\
    } && run
    # to be used after cloning to get sane branch naming
    tyrannize = !git branch --move main master && git enslave

[color]
    # enable coloring of git output
    ui = true

[merge]
    # use gvim to resolve merge conflicts
    tool = gvimdiff

[diff "zs-diff"]
    command = zs-diff --color

[diff "zs-diff++"]
    command = zs-diff --lang cxx --color

[difftool "zs-gdiff"]
    cmd = zs-gdiff $LOCAL $REMOTE

# vim: set filetype=gitconfig :
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/dotfiles

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/dotfiles

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master