{"id":21926905,"url":"https://github.com/johnaparker/git-scan","last_synced_at":"2026-05-11T06:23:00.648Z","repository":{"id":57434795,"uuid":"194624345","full_name":"johnaparker/git-scan","owner":"johnaparker","description":"Scan multiple git repositories (local or remote) for differences between local and remote branches","archived":false,"fork":false,"pushed_at":"2019-07-15T01:16:30.000Z","size":29,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-27T20:52:06.200Z","etag":null,"topics":["command-line-tool","git","github","tmux"],"latest_commit_sha":null,"homepage":"","language":"Python","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/johnaparker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-01T07:45:15.000Z","updated_at":"2023-02-22T20:32:08.000Z","dependencies_parsed_at":"2022-09-04T15:24:57.405Z","dependency_job_id":null,"html_url":"https://github.com/johnaparker/git-scan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnaparker%2Fgit-scan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnaparker%2Fgit-scan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnaparker%2Fgit-scan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnaparker%2Fgit-scan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnaparker","download_url":"https://codeload.github.com/johnaparker/git-scan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244952805,"owners_count":20537474,"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":["command-line-tool","git","github","tmux"],"created_at":"2024-11-28T22:12:11.303Z","updated_at":"2026-05-11T06:23:00.562Z","avatar_url":"https://github.com/johnaparker.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git-Scan\nGit-Scan is a command-line utility to scan local or remote git repositories for history that is divergent from the remote branch.\nIt is particularly useful when dealing with multiple git repositories across multiple machines where pulls and pushes are missed, stashes are forgotten about, files are left untracked, etc.\n\n## Features\n+ Scan repositories for missing push \u0026 pulls, uncommited changes, untracked files, leftover stashes, and dangling branches\n+ Automatically pull or push a group of repositories\n+ Open repositories in need of changes in TMUX windows\n+ Execute over SSH to git-scan on a different computer\n+ Configuration file to list scannable repositories\n\n## Usage\nTo run a git-scan\n```\ngit-scan [--push] [--pull] [--repo] [--tmux] [--ssh]\n```\nwhere the optional arguments are\n+ **``push:``**   push repository changes if ahead of remote\n+ **``pull:``**   pull repository changes if behind remote and there are no merge conflicts\n+ **``repo:``**   list of repositories to scan (defaults to all in the configuration file)\n+ **``tmux:``**   open all repositories with problems to fix in a TMUX window\n+ **``ssh:``**    run the git-scan on the provided ssh host\n\nTo add a repository to the list of scannable repositories\n```\ngit-scan add /path/to/repository\n```\nTo remove a repository\n```\ngit-scan remove /path/to/repository\n```\nTo list all scannable repositories\n```\ngit-scan list [--resolve]\n```\n\n## Installation\nGit-Scan can be installed with pip\n```shell\npip install git-scan\n```\nIf installed with the ``--user`` flag, make sure to add ``~/.local/bin`` to your PATH\n\n## Configuration File\nA configuration file located at ``~/.config/git-scan/git-scan.conf`` is created.\nThis is a TOML file listing the scannable repositories:\n```\nrepositories = [\"/path/to/repository_1\", \"/path/to/repository_2\"]\n```\nThe config file can be editted manually or changed using the ``add`` and ``remove`` commands.\nGlob patterns and tilde expansions are allowed, i.e. ``\"~/path/to/repos/*\"``\n\n## License\nGit-Scan is licensed under the terms of the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnaparker%2Fgit-scan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnaparker%2Fgit-scan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnaparker%2Fgit-scan/lists"}