{"id":20341534,"url":"https://github.com/arzkar/git-utils","last_synced_at":"2025-10-16T20:06:16.836Z","repository":{"id":171915361,"uuid":"648592338","full_name":"arzkar/git-utils","owner":"arzkar","description":"A CLI for performing various operations on git repositories","archived":false,"fork":false,"pushed_at":"2023-11-07T15:01:08.000Z","size":52,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-23T19:06:56.857Z","etag":null,"topics":["bulk","git","go","utils"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arzkar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"arzkar"}},"created_at":"2023-06-02T10:30:52.000Z","updated_at":"2024-05-27T01:32:07.000Z","dependencies_parsed_at":"2023-11-07T16:26:15.958Z","dependency_job_id":"b27a9e00-5728-4d6d-8005-e9b7abde12f4","html_url":"https://github.com/arzkar/git-utils","commit_stats":null,"previous_names":["arzkar/git-utils"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/arzkar/git-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arzkar%2Fgit-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arzkar%2Fgit-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arzkar%2Fgit-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arzkar%2Fgit-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arzkar","download_url":"https://codeload.github.com/arzkar/git-utils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arzkar%2Fgit-utils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261539317,"owners_count":23174136,"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":["bulk","git","go","utils"],"created_at":"2024-11-14T21:28:01.492Z","updated_at":"2025-10-16T20:06:11.801Z","avatar_url":"https://github.com/arzkar.png","language":"Go","funding_links":["https://github.com/sponsors/arzkar","https://ko-fi.com/arzkar"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003egit-utils\u003c/h1\u003e\n\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/arzkar)\n\nA CLI for performing various operations on git repositories\n\u003cbr\u003e\n\n## Features\n\n- `pull`: Pull branches for all the repositories at once.\n- `fetch`: Fetch branches for all the repositories at once.\n- `grep`: Search for a pattern in file contents across multiple repositories.\n- `checkout`: Checkout a branch for all the repositories at once.\n- `tag`: Use custom tag messages for git repositories\n- `bump`: Version bump the version\n\n# Installation\n\n## Using Go\n\n```\ngo install github.com/arzkar/git-utils@latest\n```\n\n## From Github\n\n1. Make sure you have Git installed on your system.\n2. Download the latest release of Git Utils from the [Releases](https://github.com/arzkar/git-utils/releases) page.\n3. Extract the downloaded archive to a location of your choice.\n4. Add the extracted directory to your system's PATH.\n\n# Usage\n\n```\n\u003e git-utils\ngit-utils v0.5.1\nCopyright (c) Arbaaz Laskar \u003carzkar.dev@gmail.com\u003e\n\nA CLI for performing various operations on git repositories\n\nUsage:\n  git-utils [command]\n\nAvailable Commands:\n  bump        Version bump the version\n  checkout    Checkout a branch in all repositories\n  completion  Generate the autocompletion script for the specified shell\n  fetch       Fetch all or specified branches\n  grep        Search for a pattern in files\n  help        Help about any command\n  pull        Pull all or specified branches\n  tag         Create a new tag with a custom message for the repository\n\nFlags:\n      --config   Show app config\n  -h, --help     help for git-utils\n\nUse \"git-utils [command] --help\" for more information about a command.\n```\n\n# Example\n\n## Note\n\n- You can specify the optional `--dir` flag to search within a specific directory. By default, the current directory is used.\n\n- Use the `--config` flag to show the location of the app directory and config file\n\n- For pull \u0026 fetch commands, you can specify a single branch, a comma seperated list of branches or all.\n\n### Pull\n\nThe `pull` command allows you to update your local branch with the latest changes for all the repositories at once.\n\nCommand:\n`git-utils pull \u003cbranch\u003e [--dir=\u003cdirectory\u003e]`\n\nExample:\n`git-utils pull main,devel`\n\n### Fetch\n\nThe `fetch` command fetches the latest changes for all the repositories at once.\n\nCommand:\n`git-utils fetch \u003cbranch\u003e [--dir=\u003cdirectory\u003e]`\n\nExample:\n`git-utils fetch feature-branch`\n\n### Checkout\n\nThe `checkout` command allows you to switch between branches for all the repositories at once.\n\nCommand:\n`git-utils checkout \u003cbranch\u003e [--dir=\u003cdirectory\u003e]`\n\nExample:\n`git-utils checkout develop`\n\n### Grep\n\nThe `grep` command searches for a specified pattern in the files of all the repositories at once.\n\nCommand:\n`git-utils grep \u003cpattern\u003e [--dir=\u003cdirectory\u003e]`\n\nExample:\n`git-utils grep \"TODO\"`\n\n### Tag\n\nThe `tag` command reads the config file and uses custom message for tag\n\nCommand:\n`git-utils tag -a \u003ctag_name\u003e -m \u003ccustom_message_keyword\u003e`\n\nExample:\n`git-utils tag -a \"v0.1.2\" -m \"changelog\"`\n\nSample `config.json`:\n\n```json\n{\n  \"tags\": {\n    \"messages\": {\n      \"changelog\": \"Full changelog: https://github.com/{repo_owner}/{repo_name}/compare/{prevTag}...{newTag}\"\n    }\n  }\n}\n```\n\nTag Templates variables available: `repo_owner, repo_name, prevTag, newTag`\n\n### Bump\n\nThe `bump` command bumps the version set in the `.git-utils-bump.cfg` and search \u0026 replaces the version for the files set in the config file using the subcommands: `major`, `minor` \u0026 `patch`\n\nCommand:\n`git-utils bump \u003ccommand\u003e`\n\nExample:\n`git-utils bump minor`\n\nSample `.git-utils.bump.cfg:\n\n```yml\n[bumpversion]\ncurrent_version = 0.4.0\ncommit          = True\ntag             = True\ntag_format      = v{tag}\n\n[bumpversion:file:cmd/root.go]\nsearch  = git-utils v{current_version}\nreplace = git-utils v{new_version}\n\n[bumpversion:file:README.md]\nsearch  = git-utils v{current_version}\nreplace = git-utils v{new_version}\n\n[bumpversion:file:utils/update_checker.go]\nsearch  = v{current_version}\nreplace = v{new_version}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farzkar%2Fgit-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farzkar%2Fgit-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farzkar%2Fgit-utils/lists"}