Have you experienced something the the flow below?
$ cd projects
~/projects $ cd app1
~/projects/app1 $ git pull [--rebase]
~/projects/app1 $ cd ../app2
~/projects/app2 $ git pull [--rebase]
~/projects/app2 $ cd ../app3
~/projects/app3 $ git pull [--rebase]
.
.
.
If you have, you know how painful and boring that gets. The good news is that
mani
exists making the flow much better.
After configuring, the following will get you the same result:
$ mani run pull
The setup Link to heading
1 Install Link to heading
Use your favourite package manager or manually install.
$ brew install mani
2 Initialise Link to heading
Run the command below in the parent folder where your repositories reside. The
tool will create an entry for each in a file named mani.yml
.
$ mani init
3 Create your tasks Link to heading
Now that you have all the repositories in your mani.yml
file, you can create
the tasks to be executed across them.
# ... repositories ...
tasks:
pull:
cmd: git pull --rebase
This is a simple command, but the tool will allow you to be very creative on those.
4 Sharing Link to heading
In case you are changing computers, backup the mani.yml
file, then in the new
computer you can run mani sync
to clone all the repositories from scratch.
You can also share that file with collegues instead of telling them to clone five repositories.
5 Being creative Link to heading
Check the documentation to learn more.
A few of the things you can do:
- Group repositories and have tasks targeted to specific groups
- Visualise your repositories as a tree
- Tweak the visual output
Other tools Link to heading
- https://github.com/nosarthur/gita
- https://myrepos.branchable.com
- https://github.com/isacikgoz/gitbatch
and many more…