GIT utilities -- repo summary, repl, changelog population, author commit percentages and more
by tjShell
Last 12 weeks · 8 commits
4 of 6 standards met
Problem Git for Windows on ARM64 uses a directory instead of . Running on an ARM64 Windows machine fails with: No mingw64 folder found in C:\Program Files\Git. Solution Updated to auto-detect when is not present. The changes cover all four places where the script resolves the target directory: 1. Auto-detection from PATH — checks for if doesn't exist 2. Default path fallback — same auto-detection for 3. User-supplied path — recognizes in user-provided install paths 4. Validation check — accepts either or When both directories exist, is preferred to preserve existing behavior on x86/x64 systems. Testing Tested on Windows 11 ARM64 with Git for Windows 2.54.0 ( layout). The installer now correctly detects and installs to without requiring the user to manually supply the path.
PR for issue #1257 These commits introduce flags -r/--remove and -e/--edit to git-ignore to allow removing patterns the same way they can be added and for opening ignore files in a text editor. Some other minor changes like '--' flag-argument separator introduced. New version is mostly backwards-compatible with old one. Some quirks/things to consider: Flags for actions/locations override each other and the last is the actual one. Temporary file creation for remove (found that filling tmp file with double loop over lines and patterns is the best way to remove a list of patterns while not interpreting patterns as regex or any other type of special symbols, maybe there is a better way) Should edit action create a file if one does not exist? Unnecessary arguments are not checked for and just omitted Submitting this as a draft, and if everything's OK/after changes are made will modify documentation accordingly (same for output with -h/--help flags).
Currently git-ignore only adds rules to ignore files (and prints them); adding an option to remove rules or just open the respective ignore file for editing seems like a nice addition. Currently I have a raw version of it that functions locally, so if this additional functionality is welcome, I can tidy it up and make a PR.
Problem Statement When working with Git repositories, local branches often accumulate after their remote tracking branches have been deleted (typically after PRs are merged and branches are cleaned up on GitHub/GitLab). Currently, git-extras provides to clean up merged branches, but there's no command to clean up branches whose remote tracking branch no longer exists. Developers commonly encounter branches marked as when running : Currently, users must manually identify and delete these branches, or write custom scripts/aliases. Proposed Solution Add a new command: (or ) Basic Usage: Expected Behavior: 1. Run to update remote tracking information 2. Identify all local branches where the remote tracking branch is marked as 3. Display the list of branches to be deleted 4. Delete the branches (or just show them if is used) Implementation Details The core logic would be similar to this bash script: Use Cases 1. Post-PR cleanup: After PRs are merged and remote branches deleted, clean up local workspace 2. Repository maintenance: Keep local branch list clean and manageable 3. CI/CD workflows: Automated cleanup in CI environments 4. Team workflows: Standardize branch cleanup across development teams Alternatives Considered git-trim (standalone tool) - Exists but requires separate installation Custom aliases - Works but not standardized or discoverable Manual deletion** - Error-prone and time-consuming Having this as part of git-extras would: Provide a standardized, well-tested solution Make it easily discoverable alongside Integrate with existing git-extras ecosystem Additional Features (Optional) flag for preview mode or flag to skip confirmation Exclude specific branches via pattern matching Interactive mode with confirmation prompts Related Commands This would complement the existing: Deletes merged branches Prunes unreachable objects (different use case) References Common workflow: https://dev.to/stephdotnet/clean-your-local-git-branches-2e69 Similar discussion: https://stackoverflow.com/questions/7726949/remove-tracking-branches-no-longer-on-remote I'm happy to contribute this feature if the maintainers are interested. Let me know if you'd like any clarifications or have suggestions for the implementation approach!
Closes #1220 What Adds a new command that deletes all local branches whose remote-tracking branch has been deleted (shown as in ). Why After PRs are merged and remote branches are cleaned up on GitHub/GitLab, local branches are left behind with no remote. There's no existing git-extras command to clean these up — handles a different case (merged but remote still exists). Usage Changes — the command — man page — added to index and description section — zsh completion with flag Checklist [x] Script starts with [x] Man page written [x] Added to [x] Updated [ ] — requires local install of ronn to generate / man files; happy to add if needed
Repository: tj/git-extras. Description: GIT utilities -- repo summary, repl, changelog population, author commit percentages and more Stars: 18067, Forks: 1225. Primary language: Shell. Languages: Shell (77.3%), Python (18.9%), Batchfile (2%), Makefile (1.8%). License: MIT. Topics: git. Latest release: 7.5.0 (1mo ago). Open PRs: 8, open issues: 91. Last activity: 1w ago. Community health: 71%. Top contributors: spacewander, tj, hemanth, nicolaiskogheim, jweslley, hyperupcall, tfendin, Lee-W, qw3rtman, timfeirg and others.