
Security News
Vite Releases Technical Preview of Rolldown-Vite, a Rust-Based Bundler
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
GitImproved is a wrapper script for Git command. It provides a much better interface than Git.
Command comparison:
Git Improved | Git |
---|---|
gi | git status -sb . |
gi sw <branch> | git checkout <branch> |
gi fork <branch> | git checkout -b <branch> |
gi join | git checkout -; git merge <branch> |
gi pick . | git add -i . |
gi track <newfile> | git add <newfile> |
gi stage <file> | git add <file> |
gi staged | git diff --cached |
gi unstage | git reset HEAD |
gi commit:rollback | git reset HEAD^ |
gi file:restore | git reset --hard |
gi cc "<comment>" | git commit -m "<comment>" |
gi correct | git commit --ammend |
gi fixup <commit> | git commit --fixup=<commit> |
gi changes | git diff |
gi branches | git branch -a |
gi commits | git log -p |
gi tags | git tag -l |
gi tag:upload | git push --tags |
gi hist | git git log --oneline --graph ... |
gi histedit | git rebase -i |
gi histedit:resume | git rebase --continue |
gi histedit:cancel | git rebase --abort |
...(and more)... | .... |
GitImproved is also an example program of Benry-CmdApp framework.
Benry-CmdApp is a framework for commad-line applications which take sub-commands (like git
, docker
, npm
, etc).
Links:
GitImproved requires Ruby >= 2.3.
$ gem install git-improved
$ gi --version
0.2.0
## help
$ gi -h | less # help message
$ gi -l | less # list actions
$ gi : # list top-level categories of actions
$ gi commit: # list actions under 'commit' category
$ gi -h commit:create # help of an action
## create a repo
$ mkdir mysample # or: gi repo:clone github:<user>/<repo>
$ cd mysample
$ gi repo:init -u yourname -e yourname@gmail.com
## add files
$ vi README.md # create a new file
$ gi track README.md # register files into the repository
$ gi # show current status
$ gi cc "add README file" # commit changes
## edit files
$ vi README.md # update an existing file
$ gi stage . # add changes into staging area
$ gi # show current status
$ gi staged # show changes in staging area
$ gi cc "update README file" # commit changes
## upload changes
$ gi repo:remote:seturl github:yourname/mysample
$ gi upload # upload local commits to remote repo
$ gi branch:
Actions:
branch:checkout : create a new local branch from a remote branch
branch:create : create a new branch, not switch to it
branch:current : show current branch name
branch:delete : delete a branch
branch:echo : print CURR/PREV/PARENT branch name
branch:fork : create a new branch and switch to it
branch:join : merge current branch into previous or other branch
branch:list : list branches
branch:merge : merge previous or other branch into current branch
branch:parent : show parent branch name (EXPERIMENTAL)
branch:previous : show previous branch name
branch:rebase : rebase (move) current branch on top of other branch
branch:rename : rename the current branch to other name
branch:reset : change commit-id of current HEAD
branch:switch : switch to previous or other branch
branch:update : git pull && git stash && git rebase && git stash pop
branch:upstream : print upstream repo name of current branch
Aliases:
branch : alias for 'branch:create'
fork : alias for 'branch:fork'
join : alias for 'branch:join'
branches : alias for 'branch:list'
merge : alias for 'branch:merge'
sw : alias for 'branch:switch'
switch : alias for 'branch:switch'
update : alias for 'branch:update'
$ gi commit:
Actions:
commit:apply : apply a commit to curr branch (known as 'cherry-pick')
commit:correct : correct the last commit
commit:create : create a new commit
commit:fixup : correct the previous commit
commit:revert : create a new commit which reverts the target commit
commit:rollback : cancel recent commits up to the target commit-id
commit:show : show commits in current branch
commit:unmerge : rollback merge commit
Aliases:
correct : alias for 'commit:correct'
cc : alias for 'commit:create'
commit : alias for 'commit:create'
fixup : alias for 'commit:fixup'
commits : alias for 'commit:show'
unmerge : alias for 'commit:unmerge'
$ gi config:
Actions:
config : list/get/set/delete config values
config:alias : list/get/set/delete aliases of 'git' (not of 'gi')
config:setuser : set user name and email
$ gi file:
Actions:
file:blame : print commit-id, author, and timestap of each line
file:changes : show changes of files
file:delete : delete files or directories
file:egrep : find by pattern
file:list : list (un)tracked/changed/ignored/missing files
file:move : move files into a directory
file:rename : rename a file or directory to new name
file:rename:all : rename multi files by pattern
file:restore : restore files (= clear changes)
file:track : register files into the repository
Aliases:
changes : alias for 'file:changes'
files : alias for 'file:list'
register : alias for 'file:track'
track : alias for 'file:track'
$ gi help:
Actions:
help : print help message (of action if specified)
$ gi history:
Actions:
history : show commit history in various format
history:edit:cancel : cancel (or abort) `git rebase -i`
history:edit:resume : resume (= conitnue) suspended `git rebase -i`
history:edit:skip : skip current commit and resume
history:edit:start : start `git rebase -i` to edit commit history
history:notuploaded : show commits not uploaded yet
Aliases:
hist : alias for 'history -F graph'
histedit : alias for 'history:edit:start'
$ gi misc:
Actions:
misc:initfile : generate a init file, or print to stdout if no args
$ gi repo:
Actions:
repo:clone : copy a repository ('github:<user>/<repo>' is available)
repo:create : create a new directory and initialize it as a git repo
repo:init : initialize git repository with empty initial commit
repo:remote : list/get/set/delete remote repository
repo:remote:origin : get/set/delete origin (= default remote repository)
$ gi staging:
Actions:
staging:add : add changes of files into staging area
staging:clear : delete all changes in staging area
staging:edit : edit changes in staging area
staging:show : show changes in staging area
Aliases:
stage : alias for 'staging:add'
pick : alias for 'staging:add -p'
unstage : alias for 'staging:clear'
staged : alias for 'staging:show'
$ gi stash:
Actions:
stash:drop : delete latest changes from stash
stash:list : list stash history
stash:pop : restore latest changes from stash
stash:put : save current changes into stash
stash:show : show changes on stash
$ gi status:
Actions:
status:compact : show status in compact format
status:default : show status in default format
status:here : same as 'stats:compact .'
status:info : show various infomation of current status
Aliases:
status : alias for 'status:compact'
$ gi sync
Actions:
sync:both : download and upload commits
sync:pull : download commits from remote and apply them to local
sync:push : upload commits to remote
Aliases:
sync : alias for 'sync:both'
dl : alias for 'sync:pull'
download : alias for 'sync:pull'
pull : alias for 'sync:pull'
push : alias for 'sync:push'
up : alias for 'sync:push'
upload : alias for 'sync:push'
$ gi tag:
Actions:
tag : list/show/create/delete tags
tag:create : create a new tag
tag:delete : delete a tag
tag:download : download tags
tag:list : list tags
tag:upload : upload tags
Aliases:
tags : alias for 'tag:list'
## create an init file
$ gi misc:initfile > ~/.gi_init.rb
## set an environment variable
$ export GI_INITFILE=~/.gi_init.rb
For details, see the output of gi misc:initfile
.
FAQs
Unknown package
We found that git-improved demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.