Languages
[Edit]
EN

Git / Bash - how to pull all projects together

4 points
Created by:
AnnLen
12430

In this short article we are going to show, how to create Bash script that runs git pull command on all repositories.

Quick solution (create pull-all.sh script):

#!/bin/bash

paths=("/path/to/repository_1" "/path/to/repository_2" "/path/to/repository_n")

for item in ${paths[@]};
do
	cd "${item}"
	echo "----------------------------------------"
	echo "${item}"
	echo "----------------------------------------"
	git pull
	echo ""
	cd ..
done

read # waiting for Enter key

Script running:

./pull-all.sh

Note: don't forget to add executable permissions: chmod u+x pull-all.sh.

Example output:

----------------------------------------
/path/to/repository_1
----------------------------------------
Already up to date.

----------------------------------------
/path/to/repository_2
----------------------------------------
Already up to date.

----------------------------------------
/path/to/repository_3
----------------------------------------
Already up to date.

 

Automatic repositories detection

In this section you can see approach that scans sibling directories to find and pull git repositories.

pull-all.sh script file:

#!/bin/bash

CURRENT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)

cd "${CURRENT_DIR}"

for item in *;
do
	if [ -d "${item}" ] && [ -d "${item}/.git" ];
	then
		cd "${item}"
		echo "----------------------------------------"
		echo "${item}"
		echo "----------------------------------------"
		git pull
		echo ""
		cd ..
	fi
done

echo "DONE!"

Git

Native Advertising
­čÜÇ
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

ÔŁĄ´ŞĆ­čĺ╗ ­čÖé

Join