{"id":28286652,"url":"https://github.com/mrnossiom/git-leave","last_synced_at":"2026-03-01T14:33:59.054Z","repository":{"id":57130231,"uuid":"443784370","full_name":"mrnossiom/git-leave","owner":"mrnossiom","description":"A cli tool to check which repo have dirty worktree or not pushed commits","archived":false,"fork":false,"pushed_at":"2025-05-13T12:32:48.000Z","size":191,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T00:38:08.674Z","etag":null,"topics":["cli","git","leave","rust","tooling"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/git-leave","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cecill-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrnossiom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-01-02T14:19:47.000Z","updated_at":"2025-05-13T12:32:52.000Z","dependencies_parsed_at":"2025-05-21T21:12:24.798Z","dependency_job_id":"bce56f68-99f3-4ab6-861a-e1c1229e04a5","html_url":"https://github.com/mrnossiom/git-leave","commit_stats":{"total_commits":53,"total_committers":1,"mean_commits":53.0,"dds":0.0,"last_synced_commit":"55b6999c5a27cd9460cf5ce67483b4d1c50c88b3"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/mrnossiom/git-leave","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrnossiom%2Fgit-leave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrnossiom%2Fgit-leave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrnossiom%2Fgit-leave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrnossiom%2Fgit-leave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrnossiom","download_url":"https://codeload.github.com/mrnossiom/git-leave/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrnossiom%2Fgit-leave/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260468323,"owners_count":23013884,"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":["cli","git","leave","rust","tooling"],"created_at":"2025-05-21T21:12:04.669Z","updated_at":"2026-03-01T14:33:59.042Z","avatar_url":"https://github.com/mrnossiom.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cimg alt=\"git-leave logo\" src=\"https://raw.githubusercontent.com/mrnossiom/git-leave/main/assets/logo.png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e\nCheck for unsaved or uncommitted changes on your machine\n\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Nix Powered\" src=\"https://img.shields.io/badge/Nix-Powered-blue?logo=nixos\" /\u003e\n  \u003ca href=\"https://crates.io/crates/git-leave\"\u003e\n    \u003cimg alt=\"git-leave crates.io version\" src=\"https://img.shields.io/crates/v/git-leave\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://matrix.to/#/#git-leave:wiro.world\"\u003e\n    \u003cimg alt=\"Matrix room at #git-leave:wiro.world\" src=\"https://img.shields.io/badge/Matrix-%23git--leave%3Awiro.world-white?logo=matrix\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Installation\n\n\u003cdetails\u003e\n  \u003csummary\u003eWith \u003ccode\u003ecargo\u003c/code\u003e via \u003ccode\u003ecrates.io\u003c/code\u003e\u003c/summary\u003e\n\nInstall from repository with cargo:\n\n```sh\ncargo install git-leave\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eWith \u003ccode\u003enix\u003c/code\u003e flakes\u003c/summary\u003e\n\nA `flake.nix` is available which means that you can use `github:mrnossiom/git-leave` as a flake identifier, so you can.\n\n- import this repository in your flake inputs\n\n  ```nix\n  {\n    git-leave.url = \"github:mrnossiom/git-leave\";\n    git-leave.inputs.nixpkgs.follows = \"nixpkgs\";\n  }\n  ```\n\n  Add the package to your [NixOS](https://nixos.org/) or [Home Manager](https://github.com/nix-community/home-manager) packages depending on your installation.\n\n- use with `nix shell`/`nix run` for temporary testing\n\n  e.g. `nix shell github:mrnossiom/git-leave`\n\n- use with `nix profile` for imperative installation\n\n  e.g. `nix profile install github:mrnossiom/git-leave`\n\nPackage is reachable through `packages.${system}.default` or `packages.${system}.git-leave`.\n\n\u003c/details\u003e\n\n# Usage\n\n```text\nCheck for unsaved or uncommitted changes on your machine\n\nUsage: git-leave [OPTIONS] [DIRECTORY]\n\nArguments:\n  [DIRECTORY]  Directory to search in [default: .]\n\nOptions:\n  -d, --default            Use default folder specified in git config for the directory to search in\n      --follow-symlinks    Follow symlinks\n      --show-directories   Show the directories we are actually crawling\n      --threads \u003cTHREADS\u003e  Number of cores to use for crawling [default: \u003cnum_cpus\u003e]\n      --check \u003cCHECK\u003e      Override checks to run on found repositories [possible values: dirty, ahead-branches, no-upstream-branches]\n  -h, --help               Print help (see more with '--help')\n  -V, --version            Print version\n```\n\n## Examples\n\n- To check all repos under the current directory\n\n  ```sh\n  git leave\n  ```\n\n- To check all repos under the specified directory\n\n  ```sh\n  git leave path/to/directory\n  ```\n- To check all repos under the default directory (see config)\n\n  ```sh\n  git leave --default\n  ```\n\n# Checks\n\n- `dirty`: Whether the repository has a dirty working copy\n- `ahead-branches`: List all branches that are ahead of their remote\n- `no-upstream-branches`: List all branches with no upstream\n\n# Config\n\nSet the `leaveTool.defaultFolder` key in your git global configuration file to use the `--default` or `-d` flag.\n\nIn your global git config file (e.g. `.config/git/config`):\n\n```git-config\n[git_leave]\n    # Folder used when the `--default` flag is provided\n    defaultFolder = ~/path/to/projects\n    # Override checks to run on repositories.\n    # This is used when checks report false positives for your setup. (e.g. Jujutsu)\n    #\n    # You can get the list in `--help`\n    checks = dirty\n    checks = ahead-branches\n```\n\n# Credits\n\n- **[woobuc/sweep](https://github.com/woobuc/sweep)** for many concepts I implemented here (e.g. threads, logging)\n\n---\n\nThis work is licensed under [`CeCILL-2.1`](https://choosealicense.com/licenses/cecill-2.1), a strong copyleft French OSS license. This license allows modification and distribution of the software while requiring the same license for derived works.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrnossiom%2Fgit-leave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrnossiom%2Fgit-leave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrnossiom%2Fgit-leave/lists"}