git-local-prune
Version:
git locale prune gone branches on remote
117 lines (80 loc) • 4.76 kB
Markdown
# git-local-prune
A git tool to clean the local branches that are deleted [gone] on remote
## Install
You can install `git-local-prune` using one of the options listed below
| Source | Command |
| -------- | ------------------------------------------------------------------------------------------------------------------------ |
| curl | `curl -L https://raw.githubusercontent.com/MathieuDoyon/git-local-prune/master/installer.sh \| sudo sh` |
| npm | `npm install -g git-local-prune` |
| manual | Clone and run `make install` |
| git-bash | For Windows : `curl -L https://raw.githubusercontent.com/MathieuDoyon/git-local-prune/master/windows-installer.sh \| sh` |
<!-- TODO add brew tap etc. -->
<!-- | brew | `brew update && brew install git-local-prune` | -->
<!-- | aur | `pacaur -S git-local-prune-git` | -->
## Usage
Simply run it in your project directory and it will give you the output from the branches prune locally
```shell
git local-prune
```
If you run it in a folder containing multiple git repositories, it will go through each of the projects and give you the local-prune report for each one of them.
## Options
You can pass several options to modify how git-local-prune behaves
```shell
git local-prune [-m <max-dir-depth>]
[-f]
[-F]
[-r]
[-L]
[-h]
```
git local-prune [-m <max-dir-depth>] [-f] [-F] [-r] [-F] [-L] [-h]
Here is the detail for each of the options
| Option | Description |
| ------ | ------------------------------------------------------------------------------------------- |
| m | Specify the depth of recursive directory search e.g. `-m 3` defaults to two |
| f | Fetch the latest commits beforehand |
| F | Force recursion up to specified depth even when git repository found earlier |
| L | Toggle inclusion of symbolic links in recursive directory search |
| h | Display the help screen |
| r | Generates the local-prune report file `git-local-prune-report.txt` in the current directory |
For the basic usage, all you have to do is run `git local-prune` in a repository or a folder containing multiple repositories
## Single Repository Usage
To check all your local branches to prune from your last git fetch, head to the project repository and run
```shell
$ git local-prune
```
## Directory depth
By default the script searches only in the current directory or one
level deep. If you want to increase that, use the `-m` switch.
If the base directory is a git repository you can use the `-F` switch to force the recursion.
```shell
$ git local-prune -m 3
```
### Directory whitelisting
If you want to restrict the local-prune to some paths, you can whitelist them by adding them to a `.git-local-prune-whitelist` file. For example if you have the below directory structure
├── Workspace # All your projects are here
│ ├── project-a # Some git repository called project-a
│ ├── project-b # Some git repository called project-b
│ ├── sketch-files # Some sketch files
│ ├── mockups # Some balsamiq mockups
│ └── ... # etc.
└── ...
And you want the `git-local-prune` to show logs for only `project-a` and `project-b`, you can do that by creating a `.git-local-prune-whitelist` file under the `Workspace` directory with the below contents and it will only consider these directories for the local-prune
```
project-a
project-b
```
## Fetch gone branches before showing local-prune
If you have many repositories that you want to generate a local-prune for, it may be useful to automatically run `git fetch` before viewing the local-prune.
If you would like to automatically run `git fetch --all` before printing the local-prune, you can add the `-f` flag, as show below
```shell
$ git local-prune -f
```
## Mixing options
Of course you can mix the options together.
```shell
# Fetch branches before each local-prune command with a max depth of 5 directories
$ git local-prune -m 5 -r -f
```
## License
MIT © [Mathieu Doyon](https://github.com/MathieuDoyon)