Awesome Open Source
Awesome Open Source

@jpwilliams/gitree

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

$ npm i -g @jpwilliams/gitree
$ gitree

# OR

$ npx @jpwilliams/gitree

What?

gitree works very similarly to 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 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 <pattern>  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.

Can it get any cooler?

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

Alternatives

The wonderful ogham/exa can print a similar tree without detailed change information/filtering with:

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


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,094,037
Git (34,678
Tree (20,382
Diff (5,148
Modified (32
Added (9
Untracked (4