gig is a command line tool to help you create useful .gitignore files for your project. It is inspired by gitignore.io and make use of the large collection of useful .gitignore templates of the web service. This also means that gig supports the are four file types that gitignore.io recognizes. Content generated by gig should match the one generated by gitignore.io except the order of stacks in which gitignore.io does not seem to guarantee any.
Prior to this project, I used to have one of these command lines in my .zshrc. However, problems I have with this command line are that
- I won't be able to use it without internet access
- It seems gitignore.io that is not using the latest templates in https://github.com/toptal/gitignore. The project needs to update to the latest git submodule then deploy it.
Therefore this tool is created to solve the two main problems above.
brew install shihanng/gig/gig The release page contains binaries built for various platforms. Download then extract the binary with tar -xf. Place the binary in the $PATH e.g. /usr/local/bin.
go get github.com/shihanng/gig There are several ways you can generate the .gitignore file:
$ gig gen Go Elm ### Elm ### # elm-package generated files elm-stuff # elm-repl generated files repl-temp-* ### Go ### # Binaries for programs and plugins ... At the very first run the program will clone the templates repository https://github.com/toptal/gitignore.git into $XDG_CACHE_HOME/gig. This means that internet connection is not required after the first successful run.
Using the search functionality (depends on fzf)
$ gig search $ gig autogen gig --help Found a bug or want to hack around? Clone the repository:
git clone git@github.com:shihanng/gig.git When you are ready run the tests:
make test make integ-test make lint Where test run the tests that can be run locally. integ-test run the tests that require internet access. lint help you write better Go codes.
Add subcommand with cobra (version managed in tools.go with go.mod):
$ cobra --config .cobra.yaml add <new subcommand> Update golden file:
$ go test . -tags=integration -update 