Helps you do your job
Overview
This page explains files in my git-utilities repo.
On a Mac:
-
Get the repo onto your machine using a Git UI or in a Git command line:
git clone https://github.com/wilsonmar/git-utilities
-
cd into the repo.
-
(If you don’t have it already) create a folder on the operating system’s path by copying the git-custom-commands folder from within the Git repository into a folder in your home directory.
Linux people often use /opt/bin, but on a Mac that is a protected area requiring sudo access.
create a folder under your $HOME folder and put that folder within the system path.
$HOME/git-custom-commands
-
On a Mac, edit file ~/.bash_profile so the custom command files will be found when they are run on any folder.
PROTIP: git automatically make files available as a subcommand, just like regular executable scripts.
-
Exit terminal session windows or re-run the Terminal initialization:
source ~/.bash_profile
-
cd into the git-custom-commands folder.
-
Set permissions to execute each file:
chmod 555 *
-
Try the git-echo command, created just so we can verify whether we have it working:
git echo "hello"
You should see response:
hello
Instead of “hello”, you can type in any phrase.
Python program
A cross-platform Python can be executed.
Graphviz
Seth House did several videos on Git and GitHub, in which he showed use of a utility to create a visualization from the command line. He was nice enough to share it with me.
-
Install GraphViz using a package manager. On a Mac:
brew install graphviz
This installs dependencies libtiff, webp, gd
- http://www.graphviz.org/Download_macos.php - graphviz-2.40.1.pkg
- http://www.graphviz.org/Download_windows.php
-
Save the file from a text editor into folder
Alternately, copy the file graph-dag into that folder from the cloned folder.
-
Set permissions to execute the file:
chmod a+x graph-dag
-
Run the graph-dag that outputs a commit graph using the GraphViz “dot” tool:
git graph-dag HEAD~10.. | dot -Tpng > mygraph.png
-
Additionally, look at the other utilities at:
https://git.wiki.kernel.org/index.php/ExampleScripts
- Sorting commits by commit message line count / changed lines ratio
- Copying all changed files from the last N commits
- Setting the timestamps of the files to the commit timestamp of the commit which last touched them
Visualization of branches
git log does a good job of illustrating branches, but GitKraken provides this colorful branch graphics:
-
The master branch is the light-blue line on the left.
-
The Bug fix branch is the darker-blue line to the right of that.
-
The develop branch is the purple line to the right of that.
ASCII Art
Make some ASCII art from (part of your) history
A - B - C \ \ D - E - F
More
This is one of a series on Git and GitHub:
- Why Git? (file-based backups vs Git clone)
- Git basics (script)
- Git whoops (correct mistakes)
- Git command shortcuts
- Git interactive merge (imerge)
- Git patch
- Git utilities
- Git hooks
- GitHub data security
- GitHub actions for automation JavaScript
- GitHub REST API
- GitHub GraphQL API
- GitHub PowerShell API Programming
- GitHub GraphQL PowerShell Module