Print a directory tree that shows Git status and ignores files dictated by .gitignore
.
$ npm i -g @jpwilliams/gitree
$ gitree
# OR
$ npx @jpwilliams/gitree
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.
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.
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.
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.
There's a built-in alias, gt
. Fantabulous, eh?
The wonderful ogham/exa can print a similar tree without detailed change information/filtering with:
exa --git-ignore --tree --all --icons --ignore-glob .git