CLI app to help you automatically add Co-authored-by trailers to git commits during pair/mob programming
You can attribute a git commit to more than one author by adding one or more Co-authored-by
trailers to the commit's message. Co-authored commits are visible on GitHub. For more information, see here.
This CLI app will help you add them automatically and also help you store and manage co-authors for pair/mob programming sessions.
- Cross-platform
- Co-authors management via CLI
- Multi-select menu to choose co-author(s) for mobbing
- Automatic appending of
Co-authored-by
trailers to commit - No need of any git aliases
- Git v2.32 or later
-
Download and extract the appropriate binary depending on your OS from the latest GitHub release
-
Ensure the binary is in your
PATH
variable e.g. you may place the file inC:\Windows
on Windows or/usr/local/bin
on Linux and macOS -
Ensure the binary is set as executable (Linux and macOS)
$ chmod +x ./git-mob
With Cargo
- Install Rust
- If you are using Windows, you will also need to install certain C++ build tools
$ cargo install git-mob-tool
-
Set up a global
prepare-commit-msg
githook which appends theCo-authored-by
trailers to the commit message.$ git mob setup --global
If a repository overrides
core.hooksPath
git configuration variable (e.g when using husky), then you will additionally need to rungit mob setup --local
for each such repository. This will set up a local (repository-specific)prepare-commit-msg
githook which invokes the global one.If you prefer to set this up manually or encounter any issues with the automated setup process, you can follow steps outlined here.
-
Store your team members' details with keys
$ git mob coauthor --add lm "Leo Messi" leo.messi@example.com $ git mob coauthor --add em "Emi Martinez" emi.martinez@example.com $ git mob coauthor --add sa "Sergio Aguero" sergio.aguero@example.com
-
To mob with some team member(s):
$ git mob --with ? Select active co-author(s): > [ ] Leo Messi <leo.messi@example.com> [ ] Emi Martinez <emi.martinez@example.com> [ ] Sergio Aguero <sergio.aguero@example.com> [↑↓ to move, space to select one, → to all, ← to none, type to filter ]
Alternatively, if you remember the co-author keys, you may bypass the multi-select menu by running:
$ git mob --with lm em
This will start a global mob session. Any git commit made afterwards will have
Co-authored-by
trailers added to the commit message as shown below:This is an example commit message Co-authored-by: Leo Messi <leo.messi@example.com> Co-authored-by: Emi Martinez <emi.martinez@example.com>
-
To clear the mob session:
$ git mob --clear
-
To view the co-authors in the current mob session:
$ git mob --list
-
To print help information:
$ git mob help $ git mob help coauthor
- When using
git mob --help
, an error may occur because Git looks for man pages for subcommands. To avoid this error, use one of the following alternatives:git mob help
git-mob --help