diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index dd0c4c4d8dda9716b53ce78877eed8e53d0a8a55..0a525843a3257493435a1ff1a0bebd2bee63e67c 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-13  Richard Earnshaw  <rearnsha@arm.com>
+
+	* contrib/git-fetch-vendor.sh: New file.
+
 2020-01-13  Jakub Jelinek  <jakub@redhat.com>
 
 	* contrib/gcc-git-customization.sh: Add git gcc-descr and gcc-undescr
diff --git a/contrib/git-fetch-vendor.sh b/contrib/git-fetch-vendor.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5e1b1f0a8540365a63c4245cddfc7cd76d93191b
--- /dev/null
+++ b/contrib/git-fetch-vendor.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if [ $# != 1 ]
+then
+    echo "Usage: $0 <vendor>"
+    exit 1
+fi
+
+vendor=$1
+upstream=`git config --get "gcc-config.upstream"`
+if [ x"$upstream" = x ]
+then
+    echo "Config gcc-config.upstream not set, run contrib/gcc-git-customization"
+    exit 1
+fi
+
+echo "setting up git to fetch vendor ${vendor} to remotes/${upstream}/${vendor}"
+
+git config --replace-all "remote.${upstream}.fetch" "+refs/vendors/${vendor}/heads/*:refs/remotes/${upstream}/${vendor}/*" ":refs/remotes/${upstream}/${vendor}/"
+git config --replace-all "remote.${upstream}.fetch" "+refs/vendors/${vendor}/tags/*:refs/tags/${vendor}/*" ":refs/tags/${vendor}/"
+git config --replace-all "remote.${upstream}.push" "+refs/heads/${vendor}/*:refs/vendors/${vendor}/heads/*" "^\+refs/heads/${vendor}/"
+git fetch