Git-Truck provides you with a truckload of visualizations for your git repository, and helps you find out if your project has a good truck factor:
- Private by design
- Works offline
- Git provider agnostic - Works with any Git repository
- No tracking, no ads, no data mining, no analytics, no cloud, no servers
To use Git Truck, you will need to have the following programs installed:
To check if these programs are installed, and what version you have, run node --version
, npm --version
and git --version
. If any of these are not installed on your system, or are just very old, they can be installed from the links above. Note that npm
is installed along with node
.
- Within a git repository, or a directory containing git repositories, run the command
npx -y git-truck
. - The application will now open in your default browser.
Git Truck is part of a research study, so please fill out our short survey after trying out the tool. Thanks!
Please open an issue here where you describe your problem. Please include git version, node version, npm version, operating system, and an image of the problem would be great too!
If you have any suggestions about new features, or things that you think should be different, also feel free to open an issue.
Run npx git-truck
in the root of a git repository, that you want to visualize:
npx git-truck [args]
arg | description | default value |
---|---|---|
--path |
path to a folder or a git repository | current directory |
--log |
output log level. See here for values | - |
--port |
port to use for the program | 3000 |
--invalidate-cache |
bypass analyzer cache manually | - |
--headless |
run the program without opening the browser | - |
Note: Using --invalidate-cache
will cause the analyzer to run every time the client talks to the server.
You can add a truckconfig.json
file to the root of your project, where you can define the arguments you want.
Additionally you can define which git-aliases should be considered as the same person using unionedAuthors
. If provided, the first name in the array is used as the name of the person.
You can also define files to ignore.
Example:
{
"log": "debug",
"branch": "main",
"unionedAuthors": [
["Bob", "Bobby Bob"],
["Alice", "aliiii", "alice alice"]
],
"hiddenFiles": ["package-lock.json", "*.bin", "*.svg"],
"invalidateCache": true
}