gitree
gitree copied to clipboard
Print a directory tree that shows Git status and ignores files dictated by .gitignore.
@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