{"id":20228867,"url":"https://github.com/jambolo/git-helpers","last_synced_at":"2026-04-09T23:47:52.746Z","repository":{"id":78056141,"uuid":"275959441","full_name":"jambolo/git-helpers","owner":"jambolo","description":"Scripts and aliases that make git easier to use","archived":false,"fork":false,"pushed_at":"2023-09-18T00:50:32.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T23:44:35.607Z","etag":null,"topics":["bash-script","git"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/jambolo.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-30T00:48:38.000Z","updated_at":"2021-12-03T01:28:43.000Z","dependencies_parsed_at":"2024-11-14T07:43:21.669Z","dependency_job_id":null,"html_url":"https://github.com/jambolo/git-helpers","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/jambolo%2Fgit-helpers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jambolo%2Fgit-helpers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jambolo%2Fgit-helpers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jambolo%2Fgit-helpers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jambolo","download_url":"https://codeload.github.com/jambolo/git-helpers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241670105,"owners_count":20000330,"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":["bash-script","git"],"created_at":"2024-11-14T07:33:14.338Z","updated_at":"2026-04-09T23:47:52.739Z","avatar_url":"https://github.com/jambolo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git-helpers\n\nScripts and aliases that make git easier to use\n\n## Scripts\n\n### cpp-init-default \\\u003cproject\\\u003e\n\nSets up a CMake C++ project named _project_ in a subfolder named _project_ and commits it to a new git repo.\n\n### git-diff-branches \\\u003cbranch\\\u003e \\\u003cbranch\\\u003e\n\nDisplays the differences between two branches using difftool.\n\n### git-difftool-all [path]\n\nDisplays the differences for _path_ between the working directory and HEAD all at once using difftool rather than one at a time.\n\n### git-ffwd\n\nFetches and fast-forwards (if possible) all branches in the repo.\n\n### git-ffwd-all\n\nFetches and fast-forwards (if possible) all branches in the repo and all its submodules.\n\n### git-pull-all-repos\n\nFor all git repositories in any subdirectories, pulls all branches and tags from all remotes.\n\n### git-pull-if-needed\n\nPulls the current branch and updates the submodules if the local branch is behind and hasn't diverged.\n\n### git-push-wip\n\nCreates a temporary branch named wip/\\$\\{user\\}/\\$\\{timestamp\\} from uncommitted changes and pushes it to origin so that it can be referenced elsewhere.\n\n### git-rebase-all \\\u003cbranch\\\u003e \\\u003cpattern\\\u003e\n\nRebases all branches matching _pattern_ onto _branch_.\n\nFor example, I do this a lot: `git-rebase-all develop feature`\n\n### git-remove-submodule \\\u003cpath\\\u003e\n\nRemoves a submodule from the repo completely.\n\n### git-save-commits \\\u003ccommit\\\u003e [new branch]\n\nResets the current branch to _commit_ and retains the removed commits in a new branch named _branch_.\n\n_Note: The new branch name defaults to wip/\\$\\{branch\\}-saved-\\$\\{timestamp\\} if none is provided._\n\n### git-showtool \\\u003ccommit\\\u003e\n\nShows the differences between _commit_ and its predecessor using difftool.\n\n### git-status-all\n\nChecks all git repositories in subdirectories, and list the ones with changes.\n\n### git-sync \\\u003cbranch1\\\u003e \\\u003cbranch2\\\u003e\n\nUnifies two branches such that commits in _branch1_ are followed by commits in _branch2_.\n\n### git-uncrustify\n\nRuns uncrustify on all modified or added c/cpp/h files in the working tree.\n\n### git-update-all\n\nFetches and fast-forwards all branches and submodules, and then updates all submodules.\n\n### git-update-rebase \\\u003cbranch\\\u003e\n\nPulls _branch_ and rebases the current branch on top of it.\n\n### git-update-submodule \\\u003csubproject-name\\\u003e\n\nStages and commits a submodule update with a descriptive commit message showing the subproject's commit hash.\n\n### julia-init-default \\\u003cproject\\\u003e\n\nSets up a Julia project named _project_ in a subfolder named _project_ and commits it to a new git repo.\n\n### node-init-default \\\u003cproject\\\u003e\n\nSets up a node.js NPM project named _project_ in a subfolder named _project_ and commits it to a new git repo.\n\n### node-init-typescript\n\nSets up a TypeScript node.js project with NPM in the current directory and commits it to a new git repo. Includes TypeScript, tsx, vitest, and VS Code debug configuration.\n\n### pnpm-init-default \\\u003cproject\\\u003e\n\nSets up a node.js PNPM project named _project_ in a subfolder named _project_ and commits it to a new git repo. Includes a GitHub CI workflow.\n\n### pnpm-init-typescript\n\nSets up a TypeScript node.js project with PNPM in the current directory and commits it to a new git repo. Includes TypeScript, tsx, vitest, VS Code debug configuration, and a GitHub CI workflow.\n\n### rust-init-default \\\u003cproject\\\u003e\n\nSets up a Rust project named _project_ in a subfolder named _project_ and commits it to a new git repo.\n\n## Utility Scripts\n\n### update-projects.sh\n\nIterates through all subdirectories with Git repositories and performs a pull and submodule update on each one. Skips the `3rdParty` directory. Useful for batch updating multiple projects.\n\n## Configuration Files\n\n### my-.gitconfig\n\nExample Git configuration file with custom settings including:\n\n- Core settings (preload index, file system cache, editor configuration)\n- Git LFS filter configuration\n- User identity settings\n- Diff and merge tool settings (Araxis Merge)\n- Custom git aliases for all the scripts in this repository\n\nTo use this configuration, copy it to your user directory and adjust the paths and user information as needed.\n\n### my-.npmrc\n\nExample NPM configuration file with settings for initializing new npm projects, including:\n\n- Author email\n- Author name\n- Author URL\n- License type\n- Project version\n\n## Aliases\n\nGit commands with options that I use a lot.\n\n- **alias grevert='git checkout --'**: Undoes any unstaged changes to the specified files\n- **alias gsquash='git rebase -i'**: Rewrites history\n- **alias gunstage='git reset HEAD'**: Unstages the specified files\n- **alias ggraph='git log --graph ...**: Draws the branch graph the way that I like it\n- **alias glog='git log ...**: Formats the log the way that I like it\n- **alias gamend='git commit --amend --no-edit'**: No-fuss amended commits\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjambolo%2Fgit-helpers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjambolo%2Fgit-helpers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjambolo%2Fgit-helpers/lists"}