diff --git a/tools/git-sync-deps b/tools/git-sync-deps
index ac4576d..22309bd 100755
--- a/tools/git-sync-deps
+++ b/tools/git-sync-deps
@@ -11,6 +11,9 @@
   An optional list of deps_os values.
 
 Environment Variables:
+  GIT_EXECUTABLE: path to "git" binary; if unset, will look for one of
+  ['git', 'git.exe', 'git.bat'] in your default path.
+
   GIT_SYNC_DEPS_PATH: file to get the dependency list from; if unset,
   will use the file ../DEPS relative to this script's directory.
 
@@ -32,8 +35,25 @@
 import sys
 import threading
 
-import fix_pythonpath
-from common.py.utils.git_utils import GIT
+
+def git_executable():
+  """Find the git executable.
+
+  Returns:
+      A string suitable for passing to subprocess functions, or None.
+  """
+  envgit = os.environ.get('GIT_EXECUTABLE')
+  searchlist = ['git', 'git.exe', 'git.bat']
+  if envgit:
+    searchlist.insert(0, envgit)
+  with open(os.devnull, 'w') as devnull:
+    for git in searchlist:
+      try:
+        subprocess.call([git, '--version'], stdout=devnull)
+      except (OSError,):
+        continue
+      return git
+  return None
 
 
 DEFAULT_DEPS_PATH = os.path.normpath(
@@ -146,6 +166,9 @@
 
   Raises DepsError exception and git Exceptions.
   """
+  git = git_executable()
+  assert git
+
   deps_file_directory = os.path.dirname(deps_file_path)
   deps = parse_file_to_dict(deps_file_path)
   dependencies = deps['deps'].copy()
@@ -167,7 +190,7 @@
     relative_directory = os.path.join(deps_file_directory, directory)
 
     list_of_arg_lists.append(
-      (GIT, repo, checkoutable, relative_directory, verbose))
+      (git, repo, checkoutable, relative_directory, verbose))
 
   multithread(git_checkout_to_directory, list_of_arg_lists)
 
