deps/Makefile: fix checkout logic for branches

Checkout origin/$branch instead of $branch. Otherwise git will just use
the local version of branch and stay at the same commit.

Note that Ia846863eff1734eca469257b9a8d5e653a45e835 changes the lines
which still have "master" to the commit. Fixing this is still useful
however, if a branch name is used in local testing.

Change-Id: If6bd440598d375a9947cb3a4fd88ae5809756e0e
diff --git a/deps/Makefile b/deps/Makefile
index 64e293b..8dc2a82 100644
--- a/deps/Makefile
+++ b/deps/Makefile
@@ -152,7 +152,15 @@
 	cd $(1) && git remote set-url origin $(2)/$(1) && git fetch
 endif
 ifneq ($$($(1)_HEAD),$($(1)_commit))
-	cd $(1) && git fetch && git checkout -q -f "$($(1)_commit)"
+	cd $(1) && \
+		git fetch && \
+		if git rev-parse "origin/$($(1)_commit)" 2>/dev/null; then \
+			set -x && \
+			git checkout -q -f "origin/$($(1)_commit)"; \
+		else \
+			set -x && \
+			git checkout -q -f "$($(1)_commit)"; \
+		fi
 endif
 endif