Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jpwilliams/gitree

Print a directory tree that shows Git status and ignores files dictated by .gitignore.
https://github.com/jpwilliams/gitree

added diff directory git modified renamed status tree untracked

Last synced: 7 days ago
JSON representation

Print a directory tree that shows Git status and ignores files dictated by .gitignore.

Awesome Lists containing this project

README

        

# @jpwilliams/gitree

Print a directory tree that shows Git status and ignores files dictated by `.gitignore`.

``` sh
$ npm i -g @jpwilliams/gitree
$ gitree

# OR

$ npx @jpwilliams/gitree
```



# What?

`gitree` works very similarly to [tree](https://linux.die.net/man/1/tree) but only lists files related to the current git repository.

Like Git, `gitree` only tracks _files_, so empty directories will never be listed. If you wish to push an empty folder to a Git repository, add an empty `.gitignore` or `.gitkeep` file to the directory and commit it.

# What does it show?

`gitree` shows any files that your repository's `.gitignore` files allows you to see, marking them with useful statuses like the ones in the screenshot above.

# What if it's not a Git repository?

It won't work. You must be somewhere within a Git repository to list any files. If you just want a basic tree view _without_ Git integration, consider the built-in `tree` command for Linux/Windows or the [`tree` homebrew formula](http://brewformulas.org/Tree) for Mac OSX.

# What else can it do?

Just this stuff:

```
Usage: gitree [options] [dir]

Options:

-V, --version output the version number
-m, --modified only show modified files
-t, --tracked only show tracked files
-c, --collapse collapse directory nodes that contain a single child
-d, --devicons print matching devicons next to files
-I, --ignore do not list files that match the given pattern
-h, --help output usage information
```

_Note that for devicons to work, you must have a font with devicon glyphs installed. A good place to start is [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts)._

# Can it get any cooler?

There's a built-in alias, `gt`. Fantabulous, eh?

# Alternatives

The wonderful [ogham/exa](https://github.com/ogham/exa) can print a similar tree **without** detailed change information/filtering with:

``` sh
exa --git-ignore --tree --all --icons --ignore-glob .git
```