{"id":13512268,"url":"https://github.com/earwig/git-repo-updater","last_synced_at":"2025-05-15T18:04:03.213Z","repository":{"id":1886265,"uuid":"1856818","full_name":"earwig/git-repo-updater","owner":"earwig","description":"A console script that allows you to easily update multiple git repositories at once","archived":false,"fork":false,"pushed_at":"2024-10-11T12:46:15.000Z","size":126,"stargazers_count":813,"open_issues_count":13,"forks_count":91,"subscribers_count":42,"default_branch":"develop","last_synced_at":"2025-05-15T18:04:00.536Z","etag":null,"topics":["cli","git","multiple-repositories","multirepo","python","repository-management"],"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/earwig.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2011-06-06T21:10:41.000Z","updated_at":"2025-05-14T08:36:32.000Z","dependencies_parsed_at":"2024-05-18T20:30:05.912Z","dependency_job_id":"b6c24308-417e-45c7-9845-b85bd3246961","html_url":"https://github.com/earwig/git-repo-updater","commit_stats":{"total_commits":102,"total_committers":9,"mean_commits":"11.333333333333334","dds":"0.22549019607843135","last_synced_commit":"f491a8ee80074e47e9463fb95f38b1d1ff089675"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fgit-repo-updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fgit-repo-updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fgit-repo-updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earwig%2Fgit-repo-updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/earwig","download_url":"https://codeload.github.com/earwig/git-repo-updater/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394720,"owners_count":22063984,"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","multiple-repositories","multirepo","python","repository-management"],"created_at":"2024-08-01T03:01:40.017Z","updated_at":"2025-05-15T18:04:03.194Z","avatar_url":"https://github.com/earwig.png","language":"Python","funding_links":[],"categories":["Python","Python (1887)"],"sub_categories":[],"readme":"__gitup__ (the _git-repo-updater_)\n\n[![ci](https://github.com/earwig/git-repo-updater/actions/workflows/ci.yml/badge.svg)](https://github.com/earwig/git-repo-updater/actions/workflows/ci.yml)\n\ngitup is a tool for updating multiple git repositories at once. It is smart\nenough to handle several remotes, dirty working directories, diverged local\nbranches, detached HEADs, and more. It was originally created to manage a large\ncollection of projects and deal with sporadic internet access.\n\ngitup should work on macOS, Linux, and Windows. You should have the latest\nversion of git and either Python 2.7 or Python 3 installed.\n\n# Installation\n\nWith [pip](https://github.com/pypa/pip/):\n\n    pip install gitup\n\nWith [Homebrew](http://brew.sh/):\n\n    brew install gitup\n\n## From source\n\nFirst:\n\n    git clone git://github.com/earwig/git-repo-updater.git\n    cd git-repo-updater\n\nThen, to install for everyone:\n\n    sudo python setup.py install\n\nor for just yourself (make sure you have `~/.local/bin` in your PATH):\n\n    python setup.py install --user\n\nFinally, simply delete the `git-repo-updater` directory, and you're done!\n\n__Note:__ If you are using Windows, you may wish to add a macro so you can\ninvoke gitup in any directory. Note that `C:\\python27\\` refers to the\ndirectory where Python is installed:\n\n    DOSKEY gitup=c:\\python27\\python.exe c:\\python27\\Scripts\\gitup $*\n\n# Usage\n\nThere are two ways to update repos: you can pass them as command arguments,\nor save them as \"bookmarks\".\n\nFor example:\n\n    gitup ~/repos/foo ~/repos/bar ~/repos/baz\n\nwill automatically pull to the `foo`, `bar`, and `baz` git repositories.\nAdditionally, you can just type:\n\n    gitup ~/repos\n\nto automatically update all git repositories in that directory.\n\nTo add bookmarks, either of these will work:\n\n    gitup --add ~/repos/foo ~/repos/bar ~/repos/baz\n    gitup --add ~/repos\n\nThen, to update all of your bookmarks, just run gitup without args:\n\n    gitup\n\nDelete a bookmark:\n\n    gitup --delete ~/repos\n\nView your current bookmarks:\n\n    gitup --list\n\nYou can mix and match bookmarks and command arguments:\n\n    gitup --add ~/repos/foo ~/repos/bar\n    gitup ~/repos/baz            # update 'baz' only\n    gitup                        # update 'foo' and 'bar' only\n    gitup ~/repos/baz --update   # update all three!\n\nUpdate all git repositories in your current directory:\n\n    gitup .\n\nYou can control how deep gitup will look for repositories in a given directory,\nif that directory is not a git repo by itself, with the `--depth` (or `-t`)\noption. `--depth 0` will disable recursion entirely, meaning the provided paths\nmust be repos by themselves. `--depth 1` will descend one level (this is the\nold behavior from pre-0.5 gitup). `--depth -1` will recurse indefinitely,\nwhich is not recommended. The default is `--depth 3`.\n\nBy default, gitup will fetch all remotes in a repository. Pass `--current-only`\n(or `-c`) to make it fetch only the remote tracked by the current branch.\n\nAlso by default, gitup will try to fast-forward all branches that have\nupstreams configured. It will always skip branches where this is not possible\n(e.g. dirty working directory or a merge/rebase is required). Pass\n`--fetch-only` (or `-f`) to skip this step and only fetch remotes.\n\nAfter fetching, gitup will _keep_ remote-tracking branches that no longer exist\nupstream. Pass `--prune` (or `-p`) to delete them, or set `fetch.prune` or\n`remote.\u003cname\u003e.prune` in your git config to do this by default.\n\nFor a full list of all command arguments and abbreviations:\n\n    gitup --help\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearwig%2Fgit-repo-updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fearwig%2Fgit-repo-updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearwig%2Fgit-repo-updater/lists"}