{"id":17686286,"url":"https://github.com/shihanng/gig","last_synced_at":"2025-04-30T07:07:07.438Z","repository":{"id":36552382,"uuid":"223945900","full_name":"shihanng/gig","owner":"shihanng","description":"Generate .gitignore files from your terminal (mostly) offline!","archived":false,"fork":false,"pushed_at":"2022-03-03T00:22:21.000Z","size":652,"stargazers_count":84,"open_issues_count":4,"forks_count":3,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-04-30T07:06:51.798Z","etag":null,"topics":["git","gitignore","gitignore-cli","gitignore-files","gitignore-generator","go","golang"],"latest_commit_sha":null,"homepage":"https://dev.to/shihanng/gig-a-gitignore-generator-opc","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shihanng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-25T12:40:54.000Z","updated_at":"2025-03-04T09:36:06.000Z","dependencies_parsed_at":"2022-08-03T06:30:52.702Z","dependency_job_id":null,"html_url":"https://github.com/shihanng/gig","commit_stats":null,"previous_names":["shihanng/gi"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shihanng%2Fgig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shihanng%2Fgig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shihanng%2Fgig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shihanng%2Fgig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shihanng","download_url":"https://codeload.github.com/shihanng/gig/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251658208,"owners_count":21622820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","gitignore","gitignore-cli","gitignore-files","gitignore-generator","go","golang"],"created_at":"2024-10-24T10:44:28.086Z","updated_at":"2025-04-30T07:07:07.407Z","avatar_url":"https://github.com/shihanng.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `gig` -- .gitignore generator\n\n[![](https://github.com/shihanng/gig/workflows/main/badge.svg?branch=develop)](https://github.com/shihanng/gig/actions?query=workflow%3Amain)\n[![](https://github.com/shihanng/gig/workflows/release/badge.svg?branch=develop)](https://github.com/shihanng/gig/actions?query=workflow%3Arelease)\n[![GitHub](https://img.shields.io/github/license/shihanng/gig)](https://github.com/shihanng/gig/blob/develop/LICENSE)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/shihanng/gig)](https://github.com/shihanng/gig/releases)\n[![Go Report Card](https://goreportcard.com/badge/github.com/shihanng/gig)](https://goreportcard.com/report/github.com/shihanng/gig)\n[![Coverage Status](https://coveralls.io/repos/github/shihanng/gig/badge.svg?branch=develop)](https://coveralls.io/github/shihanng/gig?branch=develop)\n\n`gig` is a command line tool to help you create useful `.gitignore` files for your project.\nIt is inspired by [gitignore.io](https://www.gitignore.io/) and make use of\nthe large collection of useful [`.gitignore` templates](https://github.com/toptal/gitignore) of the web service.\nThis also means that `gig` supports the are four file types that gitignore.io recognizes.\nContent generated by `gig` should match the one generated by [gitignore.io](https://www.gitignore.io/) except the\norder of stacks in which [gitignore.io](https://www.gitignore.io/) does not seem to guarantee any.\n\n## Motivation\n\nPrior to this project, I used to have one of [these command lines](https://docs.gitignore.io/install/command-line) in my `.zshrc`.\nHowever, problems I have with this command line are that\n- I won't be able to use it without internet access\n- It seems [gitignore.io](https://www.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.\n\nTherefore this tool is created to solve the two main problems above.\n\n# Install\n\n## [Homebrew (macOS)](https://github.com/shihanng/homebrew-gig)\n\n```\nbrew install shihanng/gig/gig\n```\n\n## Binaries\n\nThe [release page contains](https://github.com/shihanng/gig/releases) binaries built\nfor various platforms. Download then extract the binary with `tar -xf`.\nPlace the binary in the `$PATH` e.g. `/usr/local/bin`.\n\n## With `go get`\n\n```\ngo get github.com/shihanng/gig\n```\n\n# Usage\n\nThere are several ways you can generate the `.gitignore` file:\n\n### Using the supported language as input arguments\n\n```\n$ gig gen Go Elm\n\n### Elm ###\n# elm-package generated files\nelm-stuff\n# elm-repl generated files\nrepl-temp-*\n\n### Go ###\n# Binaries for programs and plugins\n...\n```\n\nAt the very first run the program will clone the templates repository \u003chttps://github.com/toptal/gitignore.git\u003e\ninto `$XDG_CACHE_HOME/gig`.\nThis means that internet connection is not required after the first successful run.\n\n### Using the search functionality (depends on [fzf](https://github.com/junegunn/fzf))\n\n```\n$ gig search\n```\n\n![gig search demo](./.github/images/search.gif)\n\n### Using the EXPERIMENTAL auto generate functionality\n\n```\n$ gig autogen\n```\n\n### For more information, see\n\n```\ngig --help\n```\n\n# Development\n\nFound a bug or want to hack around? Clone the repository:\n\n```\ngit clone git@github.com:shihanng/gig.git\n```\n\nWhen you are ready run the tests:\n\n```\nmake test\nmake integ-test\nmake lint\n```\n\nWhere `test` run the tests that can be run locally.\n`integ-test` run the tests that require internet access.\n`lint` help you write better Go codes.\n\nAdd subcommand with [cobra](https://github.com/spf13/cobra)\n(version managed in [tools.go](./tools.go) with [go.mod](./go.mod)):\n\n```\n$ cobra --config .cobra.yaml add \u003cnew subcommand\u003e\n```\n\nUpdate golden file:\n\n```\n$ go test . -tags=integration -update\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshihanng%2Fgig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshihanng%2Fgig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshihanng%2Fgig/lists"}