Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/jpwilliams/gitree
- Owner: jpwilliams
- License: mit
- Created: 2017-08-17T17:16:54.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-09T07:54:50.000Z (28 days ago)
- Last Synced: 2024-10-16T07:54:51.236Z (21 days ago)
- Topics: added, diff, directory, git, modified, renamed, status, tree, untracked
- Language: JavaScript
- Size: 156 KB
- Stars: 51
- Watchers: 3
- Forks: 3
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
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
```