Parallel Foreach Submodule (PFS) is a tool for "git submodule foreach" execution in parallel.
The origin of the tool is the following question in Stack Overflow:
👀 Execute “git submodule foreach” in parallel
- Execute git submodule foreach in parallel
- Use it from terminal when it is installed
- Multiplatform execution (it is developed in Python)
You can install or upgrade PFS with:
$ pip install pfs --upgrade
Or you can install from source with:
$ git clone https://github.com/stt-systems/parallel_foreach_submodule.git --recursive
$ cd parallel_foreach_submodule
$ pip install .
$ pfs -p "D:\project" -c "git pull origin" -j 8
The example executes command git pull origin
for each submdoule in D:\project
using 8 threads.
For commands that include quoted text, such as the message in git commit
, you must escape the inner quotation marks:
$ pfs -p "D:\project" -c "git commit -m \"Your commit message\"" -j 8
List of shortcuts or aliases to write faster some usual operations
pfs --pull
~pfs -c "git pull origin"
pfs --status
~pfs -c "git status"
pfs --pending
~pfs -c "git log <since origin/current>..<until current>"
pfs --in-branch [branch_name]
~pfs -c "IF (git rev-parse --abbrev-ref HEAD) == branch"
pfs --not-in-branch [branch_name]
~pfs -c "IF (git rev-parse --abbrev-ref HEAD) != branch"
--verbose
for full log
Run the following command to see all options available:
pfs --help
or pfs -h