Coder Social home page Coder Social logo

cgitc's Introduction

cgitc's People

Contributors

auhau avatar basixkor avatar hoonga avatar jeizsm avatar pbzweihander avatar simnalamburt avatar xnuk avatar xtendo-org avatar yous avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cgitc's Issues

Implement abbreviation specialization

abbreviations 파일 안에 들어가는 스크립트가, 모든 쉘에 작동할 수 있는 형태가 아님. 예를들어 $(~~) 이런 코드가 abbreviations 안에 있으면, 그건 fish에서 작동하지 못함.

Fish shell: No git_current_branch function

Fish shell does not have git_current_branch (I believe this comes from ZSH/Oh-My-ZSH) and hence the abbrs like ggpull won't really work properly. It could be included in the run.fish.

oh-my-zsh의 git 플러그인 기능과, cgitc 자체확장 구분짓기

oh-my-zsh의 git 플러그인 기능과, cgitc 자체확장 구분짓기. 지금 abbreviations 파일 안에 ohmyzsh 에서 가져온것과, 자체적으로 확장한것들이 섞여있는데 구분짓고싶다.

Before

grhh
grhh1
gup
gbla

After

grhh
gup
gbla

#
# cgitc extensions
#
grhh1

Make it fully compatible with oh-my-zsh git plugin

TODOs

  • glp
  • gdv
  • gfg
  • ggf
  • ggl
  • ggp
  • ggpnp
  • ggu
Reference
# Query/use custom command for `git`.
zstyle -s ":vcs_info:git:*:-all-" "command" _omz_git_git_cmd
: ${_omz_git_git_cmd:=git}

#
# Functions
#

# The name of the current branch
# Back-compatibility wrapper for when this function was defined here in
# the plugin, before being pulled in to core lib/git.zsh as git_current_branch()
# to fix the core -> git plugin dependency.
function current_branch() {
  git_current_branch
}
# The list of remotes
function current_repository() {
  if ! $_omz_git_git_cmd rev-parse --is-inside-work-tree &> /dev/null; then
    return
  fi
  echo $($_omz_git_git_cmd remote -v | cut -d':' -f 2)
}
# Pretty log messages
function _git_log_prettily(){
  if ! [ -z $1 ]; then
    git log --pretty=$1
  fi
}
# Warn if the current branch is a WIP
function work_in_progress() {
  if $(git log -n 1 2>/dev/null | grep -q -c "\-\-wip\-\-"); then
    echo "WIP!!"
  fi
}


alias gbda='git branch --merged | command grep -vE "^(\*|\s*master\s*$)" | command xargs -n 1 git branch -d'
alias gpristine='git reset --hard && git clean -dfx'
compdef gcount=git
gdv() { git diff -w "$@" | view - }
compdef _git gdv=git-diff
function gfg() { git ls-files | grep $@ }
compdef gfg=grep
ggf() {
[[ "$#" != 1 ]] && local b="$(git_current_branch)"
git push --force origin "${b:=$1}"
}
compdef _git ggf=git-checkout
ggl() {
if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then
git pull origin "${*}"
else
[[ "$#" == 0 ]] && local b="$(git_current_branch)"
git pull origin "${b:=$1}"
fi
}
compdef _git ggl=git-checkout
alias ggpull='git pull origin $(git_current_branch)'
compdef _git ggpull=git-checkout
ggp() {
if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then
git push origin "${*}"
else
[[ "$#" == 0 ]] && local b="$(git_current_branch)"
git push origin "${b:=$1}"
fi
}
compdef _git ggp=git-checkout
compdef _git ggpush=git-checkout
ggpnp() {
if [[ "$#" == 0 ]]; then
ggl && ggp
else
ggl "${*}" && ggp "${*}"
fi
}
compdef _git ggpnp=git-checkout
alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'
ggu() {
[[ "$#" != 1 ]] && local b="$(git_current_branch)"
git pull --rebase origin "${b:=$1}"
}
compdef _git ggu=git-checkout
alias ggpur='ggu'
compdef _git ggpur=git-checkout

alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
compdef git-svn-dcommit-push=git

compdef _git gk='gitk'
alias gke='\gitk --all $(git log -g --pretty=format:%h)'
compdef _git gke='gitk'

compdef _git glp=git-log

alias gpoat='git push origin --all && git push origin --tags'
compdef _git gpoat=git-push

alias grt='cd $(git rev-parse --show-toplevel || echo ".")'

alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'

alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit -m "--wip--"'

Uninstall script

for it in (abbr --list)
  abbr --erase "$it"
end
set --erase -U cgitc_initialized

이런식으로 하면 되긴하는데.. 저러면 모든 abbr을 다 지우게되어서 곤란함.

Powershell support

# Abbreviations sorted in alphabetically
function g                    { git @Args }

function ga                   { git add @Args }
function gaa                  { git add --all @Args }
function gapa                 { git add --patch @Args }
function gau                  { git add --update @Args }
function gav                  { git add --verbose @Args }
function gap                  { git apply @Args }

function gb                   { git branch @Args }
function gba                  { git branch -a @Args }
function gbd                  { git branch -d @Args }
function gbD                  { git branch -D @Args }
function gbl                  { git blame -b -w @Args }
function gbnm                 { git branch --no-merged @Args }
function gbr                  { git branch --remote @Args }
function gbs                  { git bisect @Args }
function gbsb                 { git bisect bad @Args }
function gbsg                 { git bisect good @Args }
function gbsr                 { git bisect reset @Args }
function gbss                 { git bisect start @Args }

function gc                   { git commit -v @Args }
function gc!                  { git commit -v --amend @Args }
function gcn!                 { git commit -v --no-edit --amend @Args }
function gca                  { git commit -v -a @Args }
function gca!                 { git commit -v -a --amend @Args }
function gcan!                { git commit -v -a --no-edit --amend @Args }
function gcans!               { git commit -v -a -s --no-edit --amend @Args }
function gcam                 { git commit -a -m @Args }
function gcsm                 { git commit -s -m @Args }
function gcb                  { git checkout -b @Args }
function gcf                  { git config --list @Args }
function gcl                  { git clone --recurse-submodules @Args }
function gclean               { git clean -id @Args }
function gcm                  { git checkout master @Args }
function gcd                  { git checkout develop @Args }
function gcmsg                { git commit -m @Args }
function gco                  { git checkout @Args }
function gcount               { git shortlog -sn @Args }
function gcp                  { git cherry-pick @Args }
function gcpa                 { git cherry-pick --abort @Args }
function gcpc                 { git cherry-pick --continue @Args }
function gcs                  { git commit -S @Args }

function gd                   { git diff @Args }
function gdca                 { git diff --cached @Args }
function gdcw                 { git diff --cached --word-diff @Args }
function gdt                  { git diff-tree --no-commit-id --name-only -r @Args }
function gdw                  { git diff --word-diff @Args }

function gf                   { git fetch @Args }
function gfa                  { git fetch --all --prune @Args }
function gfo                  { git fetch origin @Args }

function gg                   { git gui citool @Args }
function gga                  { git gui citool --amend @Args }

function ghh                  { git help @Args }

function gignore              { git update-index --assume-unchanged @Args }

function gk                   { gitk --all --branches @Args }

function gl                   { git pull @Args }
function glg                  { git log --stat @Args }
function glgp                 { git log --stat -p @Args }
function glgg                 { git log --graph @Args }
function glgga                { git log --graph --decorate --all @Args }
function glgm                 { git log --graph --max-count=10 @Args }
function glo                  { git log --oneline --decorate @Args }
function glol                 { git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' @Args }
function glols                { git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat @Args }
function glod                 { git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' @Args }
function glods                { git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short @Args }
function glola                { git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all @Args }
function glog                 { git log --oneline --decorate --graph @Args }
function gloga                { git log --oneline --decorate --graph --all @Args }

function gm                   { git merge @Args }
function gmom                 { git merge origin/master @Args }
function gmt                  { git mergetool --no-prompt @Args }
function gmtvim               { git mergetool --no-prompt --tool=vimdiff @Args }
function gmum                 { git merge upstream/master @Args }
function gma                  { git merge --abort @Args }

function gp                   { git push @Args }
function gpd                  { git push --dry-run @Args }
function gpf                  { git push --force-with-lease @Args }
function gpf!                 { git push --force @Args }
function gpu                  { git push upstream @Args }
function gpv                  { git push -v @Args }

function gr                   { git remote @Args }
function gra                  { git remote add @Args }
function grb                  { git rebase @Args }
function grba                 { git rebase --abort @Args }
function grbc                 { git rebase --continue @Args }
function grbd                 { git rebase develop @Args }
function grbi                 { git rebase -i @Args }
function grbm                 { git rebase master @Args }
function grbs                 { git rebase --skip @Args }
function grev                 { git revert @Args }
function grh                  { git reset @Args }
function grhh                 { git reset --hard @Args }
function grm                  { git rm @Args }
function grmc                 { git rm --cached @Args }
function grmv                 { git remote rename @Args }
function grrm                 { git remote remove @Args }
function grs                  { git restore @Args }
function grset                { git remote set-url @Args }
function grss                 { git restore --source @Args }
function gru                  { git reset -- @Args }
function grup                 { git remote update @Args }
function grv                  { git remote -v @Args }

function gsb                  { git status -sb @Args }
function gsd                  { git svn dcommit @Args }
function gsh                  { git show @Args }
function gsi                  { git submodule init @Args }
function gsps                 { git show --pretty=short --show-signature @Args }
function gsr                  { git svn rebase @Args }
function gss                  { git status -s @Args }
function gst                  { git status @Args }

function gstaa                { git stash apply @Args }
function gstc                 { git stash clear @Args }
function gstd                 { git stash drop @Args }
function gstl                 { git stash list @Args }
function gstp                 { git stash pop @Args }
function gsts                 { git stash show --text @Args }
function gstall               { git stash --all @Args }
function gsu                  { git submodule update @Args }
function gsw                  { git switch @Args }
function gswc                 { git switch -c @Args }

function gts                  { git tag -s @Args }

function gunignore            { git update-index --no-assume-unchanged @Args }
function gup                  { git pull --rebase @Args }
function gupv                 { git pull --rebase -v @Args }
function gupa                 { git pull --rebase --autostash @Args }
function gupav                { git pull --rebase --autostash -v @Args }
function glum                 { git pull upstream master @Args }

function gwch                 { git whatchanged -p --abbrev-commit --pretty=medium @Args }


#
# cgitc extensions
#
function gbm                  { git branch -m @Args }
function gcaa                 { git commit -v -a --amend @Args }
function gdl                  { git difftool @Args }
function gds                  { git diff --stat @Args }
function ggpush               { git push --set-upstream origin HEAD @Args }
function gp!                  { git push --force-with-lease @Args }
function grhd                 { git reset HEAD @Args }
function grhhd                { git reset --hard HEAD @Args }
function grhh1                { git reset --hard HEAD~1 @Args }
function gsta                 { git stash @Args }
function gc-                  { git checkout - @Args }

Branding

I think cgitc is awesome enough, worth spreading.

TODO

  • Change logo (old logo)
  • Share it to the community

업데이트 핸들러

omf update 같은 식으로 업데이트를 해봤자, abbr들이 업데이트되지 않기때문에 문제가 심각함. 지금 당장은 매번 cgitc를 삭제 재설치 하는 방식으로 해결하고있음

문제는 지금 oh-my-fish가 반달리즘으로 날아가버렸기때문에 답이없음. 하.......

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.