• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

qw3rtman/gg: Git Goodies: At-A-Glance, Efficient, and Aesthetically Pleasing Git ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

qw3rtman/gg

开源软件地址:

https://github.com/qw3rtman/gg

开源编程语言:

Shell 99.9%

开源软件介绍:

Git Goodies

gg helps you work with git more efficiently, saving you keystrokes for your most prized projects.

Think of gg as a wrapper for the git commands that you run all the time; a wrapper that adds functionality and is aesthetically pleasing.

Hold up. Aren't these basically Git aliases?

There's more to the package than just shortcuts or aliases.

For example, the gg s command presents you with an easy to look at a quick glance status of your repository. In addition, there are aesthetic changes that increase the intuitiveness of Git itself.

Here's a screenshot of the gg s command in action:

gg s

You can see the current local branch and its respective remote branch, the latest commit hash and message, the local repository's position in relation with the respective remote repository (alerting you that you should push two commits to reach up-to-date status with the remote repository), the status of staging and commits, and the commits that waiting to be pushed.

All of this from one four character command.

Installation

Linux/OSX

curl -fsSL git.io/gg.sh | bash

(HTTPS installation also available via curl -fsSL https://git.io/gg.sh | bash)

All this installation script does is download the gg script, make it an executable, and copy it to your $PATH (/usr/local/bin). For copying to your $PATH, it may require you to enter your password. If there is a better way to do this, please send in a pull request.

If you don't feel comfortable executing a random script, its source is available here.

To take advantage of user-specific features (such as gg cl <your-repository>), make sure you git config --global --add gg.username <your-username>.

If you use oh-my-zsh, gg is already aliased to git gui citool. If you don't use this alias, you can unalias it in your .zshrc file by adding unalias gg at the end of .zshrc.

gg relies solely on git and attempts to use built-in Shell features over external programs, such as using Bash substitution instead of sed.

Windows:

Note: This assumes that you already have the git installed on your system and it is configured to be used on the command line.

  • Open a Command Prompt window and navigate to a folder included in your PATH.
  • Run the following commands
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/qw3rtman/gg/master/bin/gg', 'gg')"
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/qw3rtman/gg/master/bin/gg.cmd', 'gg.cmd')"
  • Open a new Command Prompt window and enjoy.

Usage


  usage:
    gg [options] [COMMAND] [args]

  commands:
    gg                              Display this help information
    gg i                            Initialize new Git repository
    gg ig                           List available .gitignore templates
    gg ig <template>                Add .gitignore file from <template>
    gg igf <file ...>               Add all <file>(s) to .gitignore
    gg cl <url>                     Clone repository from <url>
    gg a                            Add all files
    gg a <file ...>                 Add all <file>(s)
    gg c <message>                  Add all files and commit with <message>
    gg cn <message>                 Commit with <message>
    gg uc <count>                   Go back (uncommit) <count> commits
    gg rc <message>                 Add all files and recommit (amend) with <message>
    gg rcn <message>                Recommit (amend) with <message>
    gg p                            Push all commits to remote
    gg pl                           Pull all commits from remote
    gg f                            Fetch all commits from remote
    gg s                            Display repository status
    gg l                            Display repository commit log
    gg b                            List all branches in repository
    gg b <branch>                   Create and checkout <branch>
    gg ch                           List all branches in repository
    gg ch <branch>                  Checkout <branch>
    gg in <hash>                    Display info about <hash>

  options:
    -V, --version                   Output current version of Git Goodies
    -h, --help                      Display this help information

Initializing repositories

gg i

  • gg i
  • gg init

Adding a template to .gitignore

gg ig

  • gg ig <template>
  • gg ignore <template>

Templates provided by .gitignore.io

Adding a file to .gitignore

gg igf

  • gg igf <file ...>
  • gg ignorefile <file ...>

Cloning a repository

gg cl

  • gg cl <url>

  • gg clone <url>

  • gg cl <github-username/repository>

  • gg clone <github-username/repository>

  • gg cl <your-repository> (if you have user-specific features enabled by git config --global --add gg.username <your-username>)

  • gg clone <your-repository> (if you have user-specific features enabled by git config --global --add gg.username <your-username>)

The URL can be provided in any format (SSH, HTTP, etc.)

Adding all files

gg a

  • gg a
  • gg add

Adding specific files

gg a

  • gg a <file ...>
  • gg add <file ...>

Adding all and committing

gg c

  • gg c <message>
  • gg commmit <message>

If no is provided, a generic one listing all files modified/added will be generated.

Committing

gg cn

  • gg cn <message>

If no is provided, a generic one listing all files modified/added will be generated.

Uncommiting (resetting: git reset HEAD~count)

gg back

  • gg uc <count>
  • gg uncommit <count>
  • gg back <count>

If no is provided, 1 will be used.

Adding all and recommitting (amending: git commit --amend)

gg am

  • gg rc <message>
  • gg recommit <message>
  • gg am <message>
  • gg amend <message>

If no is provided, a generic one listing all files modified/added will be generated.

Recommitting (amending: git commit --amend)

gg am

  • gg rcn <message>
  • gg amn <message>

If no is provided, a generic one listing all files modified/added will be generated.

Pushing

gg p

  • gg p
  • gg push

Pulling

gg pl

  • gg pl
  • gg pull

Fetching

gg f

  • gg f
  • gg fetch

Getting repository status

gg s

  • gg s
  • gg status

Displaying commit log

gg l

  • gg l
  • gg log

Listing all branches

gg b

  • gg b
  • gg ch

Checking out existing branch

gg ch

  • gg ch <branch>

Creating and checking out new branch

gg b

  • gg b <branch>

Displaying commit info

gg in

  • gg in <hash>
  • gg info <hash>
  • gg view <hash>

If no is provided, HEAD (last commit) will be used.

Displaying Git Goodies version

gg -V

  • gg -V
  • gg --version

Displaying Git Goodies help

gg -h

  • gg
  • gg -h
  • gg --help
  • gg help

Contributing

Contributions are always welcome, from a typo in the README to an enhancement of a feature to a completely new feature itself.

Avoid code smells, create reusable code, and follow the loosely-modeled coding standard found in the current code.

Fork the code, make a new branch, and send in a pull request.

See the TODO below for some contributions you can work on!

TODO

  • Integrate with GitHub (Issue #34)
  • Add pretty graphs (Issue #51)
  • Some form of persistent user profile (Issue #57)
  • Shortcut to quickly setup new repository (Issue #65)



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap